标签: bigdata

从Mysql切换到MongoDB 200百万行

我们正试图从mysql迁移到mongodb.mysql结构是id_src int id_dest int unique key:id_src,id_dest

它们在mysql中大约有2亿行

数据示例:{id_src,id_dest} {1,2} {1,3} {1,10} {2,3} {2,10} {4,3}

我们需要检索数据:{id_dest,count} {3,3} {10,2} {2,1}

我开始在mongodb中重新生成mysql的结构.插入性能很大(非常好):大约1小时插入200万行.

但我需要使用map reduce来获取组.地图缩减大约需要1个小时.

所以我尝试创建另一个mongodb结构:{id_dest,{id_src1,id_src2}}

每个文档可以有十万个id_src.

这是我的insert.php代码

$res=mysql_unbuffered_query("select * from ids limit 10000100");  
while ($tab=mysql_fetch_array($res)) {  
$collection->update(array('_id'=>(int)$tab['id_dest']),array('$push' => array('src'=>(int)$tab['id_src'])),array("upsert" => true));  
}  
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,性能非常糟糕,每秒只有少量更新.

难道我做错了什么 ?

mysql bigdata mongodb

1
推荐指数
1
解决办法
2566
查看次数

从数据框中删除重复单位

我正在研究一个有n个协变量的大型数据集.许多行都是重复的.为了识别重复项,我需要使用协变量的子集来创建标识变量.也就是说,(nx)协变量是无关紧要的.我想连接x协变量上的值,以唯一地识别观察结果并消除重复.

set.seed(1234)
UNIT <- c(1,1,1,1,2,2,2,3,3,3,4,4,4,5,6,6,6)
DATE <- c("1/1/2010","1/1/2010","1/1/2010","1/2/2012","1/2/2009","1/2/2004","1/2/2005","1/2/2005",
      "1/1/2011","1/1/2011","1/1/2011","1/1/2009","1/1/2008","1/1/2008","1/1/2012","1/1/2013",
      "1/1/2012")
OUT1 <- c(300,400,400,400,600,700,700,800,800,800,900,700,700,100,100,100,500)
JUNK1 <- c(rnorm(17,0,1))
JUNK2 <- c(rnorm(17,0,1))

test = data.frame(UNIT,DATE,OUT1,JUNK1,JUNK2)
Run Code Online (Sandbox Code Playgroud)

'test'是一个示例数据框.我需要用来唯一识别观察结果的变量是'UNIT','DATE'和'OUT1'.例如,

head(test)
  UNIT     DATE OUT1      JUNK1      JUNK2
1    1 1/1/2010  300 -1.2070657 -0.9111954
2    1 1/1/2010  400  0.2774292 -0.8371717
3    1 1/1/2010  400  1.0844412  2.4158352
4    1 1/2/2012  400 -2.3456977  0.1340882
5    2 1/2/2009  600  0.4291247 -0.4906859
6    2 1/2/2004  700  0.5060559 -0.4405479    
Run Code Online (Sandbox Code Playgroud)

观察1和4在数据集中不重复.观察2和3是重复的.我想要创建的新数据集将保留观察1和4,并且只保留2和3中的一个.我尝试的解决方案是:

subset(test, !duplicated(c(UNIT,DATE,OUT1)))
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这并不能解决问题:

      UNIT     DATE OUT1       JUNK1      JUNK2
1        1 …
Run Code Online (Sandbox Code Playgroud)

r duplicates duplicate-removal bigdata

1
推荐指数
1
解决办法
1691
查看次数

如何在Python中将文本文件随机播放到磁盘上

我正在处理一个大约12*10 ^ 6行的文本文件,它存储在我的硬盘上.该文件的结构是:

data|data|data|...|data\n
data|data|data|...|data\n
data|data|data|...|data\n
...
data|data|data|...|data\n
Run Code Online (Sandbox Code Playgroud)

没有标题,并且没有唯一标识行的ID.

由于我想将它用于机器学习目的,我需要确保文本文件中没有可能影响随机学习的顺序.

通常我会将这种类型的文件上传到内存中,然后在将它们重写到磁盘之前对其进行随机播放.不幸的是,由于文件的大小,这次不可能,所以我必须直接在磁盘上管理洗牌(假设我没有磁盘空间的问题).关于如何有效地(尽可能低的复杂性,即写入磁盘)使用Python管理这样的任务的任何想法?

python shuffle text-files bigdata

1
推荐指数
1
解决办法
2259
查看次数

快速将大型平面文件读入r as.numeric

我有一个大的(450MB/2.5亿行)1s和0s的平面文件,看起来像这样......

    1
    0
    0
    1
    0
    1
    0
    etc...
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将其读入R ...

dat <- as.numeric(readLines("my_large_file"))
Run Code Online (Sandbox Code Playgroud)

我得到了理想的数据结构,但需要很长时间.有什么建议可以更快的方法来达到相同的效果吗?

NB.1和0的顺序对于保存很重要.我会在unix命令行的python中考虑选项,但是在R中需要最终的数据结构来绘制图形.

r flat-file bigdata

1
推荐指数
2
解决办法
1105
查看次数

使用pandas的块数据库块的值计数

我有一个大的DataFrame df,我想计算每个值.我做不到:

df = pandas.read_csv('my_big_data.csv')
values_df = df.apply(value_counts)
Run Code Online (Sandbox Code Playgroud)

因为它是一个非常大的数据库.

我认为必须有可能通过块来做大块chunksize,但我看不出如何.

python bigdata pandas

1
推荐指数
1
解决办法
840
查看次数

使用CDH(cloudera)有什么好处?

为什么我们使用CDH(cloudera)而不是使用Apache-Hadoop或Apache-Spark集。独自?有什么好处?

如果我想使用Apache-Spark进行数据分析,那么最好单独使用CDH或Apache-Spark Framework吗?

谢谢

hadoop bigdata cloudera apache-spark cloudera-cdh

1
推荐指数
1
解决办法
1766
查看次数

为什么在Spark而不是Spark-SQL上使用Hive?

我是数据科学领域的新手,我不明白为什么有人想要将Hive连接到Spark而不是仅仅使用Sqark-SQL.

在Spark上使用Hive而不是Spark-SQL有什么好处(除了能够在生产中使用Hive代码)?

谢谢

hive bigdata apache-spark apache-spark-sql

1
推荐指数
1
解决办法
1518
查看次数

NetCDF大数据

我需要将大(+ 15GB)NetCDF文件读入一个程序,该程序包含一个3D变量(等时间作为记录维度,数据是纬度经度).

我正在以3级嵌套循环处理数据(如果NetCDF通过某个标准,则检查NetCDF的每个块.例如;

from netCDF4 import Dataset                   
import numpy as np

File = Dataset('Somebigfile.nc', 'r')
Data = File.variables['Wind'][:]

Getdimensions = np.shape(Data)
Time = Getdimensions[0]
Latdim  = Getdimensions[1]
Longdim = Getdimensions[2]

for t in range(0,Time):
    for i in range(0,Latdim):
        for j in range(0,Longdim):

            if Data[t,i,j] > Somethreshold:
                #Do something
Run Code Online (Sandbox Code Playgroud)

无论如何,我一次可以在NetCDF文件中读取一次记录吗?大大减少内存使用量.任何帮助非常感谢.

我知道NCO运算符,但在使用脚本之前不希望使用这些方法来分解文件.

python bigdata netcdf

1
推荐指数
1
解决办法
362
查看次数

错误工具.BaseSqoopTool:解析作业的参数时出错:Sqoop我试图在sqoop中创建作业,但发生以下错误

sqoop job --create myjob --import --connect "jdbc:mysql://localhost/classicmodels" --username root --password 123 --table customers -m 1 --taget-dir /manoj280217/sqoop
Run Code Online (Sandbox Code Playgroud)

错误:

17/02/28 08:56:18 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
17/02/28 08:56:18 ERROR tool.BaseSqoopTool: Error parsing arguments for job:
17/02/28 08:56:18 ERROR tool.BaseSqoopTool: Unrecognized argument: --import
17/02/28 08:56:18 ERROR tool.BaseSqoopTool: Unrecognized argument: --connect
17/02/28 08:56:18 ERROR tool.BaseSqoopTool: Unrecognized argument: jdbc:mysql://localhost/classicmodels
17/02/28 08:56:18 ERROR tool.BaseSqoopTool: Unrecognized argument: --username
17/02/28 08:56:18 ERROR tool.BaseSqoopTool: Unrecognized argument: root
17/02/28 08:56:18 ERROR tool.BaseSqoopTool: Unrecognized argument: --password
17/02/28 08:56:18 ERROR …
Run Code Online (Sandbox Code Playgroud)

bigdata sqoop

1
推荐指数
1
解决办法
8649
查看次数

Oozie s3 as job folder

Oozie is failing with following error when workflow.xml is provided from s3, But the same worked provided workflow.xml from HDFS. Same has worked with earlier versions of oozie, Is there anything changed from 4.3 version of oozie.?

Env:

  • HDP 3.1.0
  • Oozie 4.3.1
  • oozie.service.HadoopAccessorService.supported.filesystems=*

Job.properties

nameNode=hdfs://ambari-master-1a.xdata.com:8020
jobTracker=ambari-master-2a.xdata.com:8050
queue=default
#OOZIE job details
basepath=s3a://mybucket/test/oozie
oozie.use.system.libpath=true
oozie.wf.application.path=${basepath}/jobs/test-hive?
Run Code Online (Sandbox Code Playgroud)

#(works with this change in Job.properties)

basepath=hdfs://ambari-master-1a.xdata.com:8020/test/oozie

workflow.xml

?<workflow-app xmlns="uri:oozie:workflow:0.5" name="test-hive">
    <start to="hive-query"/>
    <action name="hive-query" retry-max="2" retry-interval="10">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <script>test_hive.sql</script>
        </hive>
        <ok to="end"/>
        <error to="kill"/> …
Run Code Online (Sandbox Code Playgroud)

hadoop hive amazon-s3 bigdata oozie

1
推荐指数
1
解决办法
211
查看次数