我们正试图从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)
但在这种情况下,性能非常糟糕,每秒只有少量更新.
难道我做错了什么 ?
我正在研究一个有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) 我正在处理一个大约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管理这样的任务的任何想法?
我有一个大的(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中需要最终的数据结构来绘制图形.
我有一个大的DataFrame df,我想计算每个值.我做不到:
df = pandas.read_csv('my_big_data.csv')
values_df = df.apply(value_counts)
Run Code Online (Sandbox Code Playgroud)
因为它是一个非常大的数据库.
我认为必须有可能通过块来做大块chunksize,但我看不出如何.
为什么我们使用CDH(cloudera)而不是使用Apache-Hadoop或Apache-Spark集。独自?有什么好处?
如果我想使用Apache-Spark进行数据分析,那么最好单独使用CDH或Apache-Spark Framework吗?
谢谢
我是数据科学领域的新手,我不明白为什么有人想要将Hive连接到Spark而不是仅仅使用Sqark-SQL.
在Spark上使用Hive而不是Spark-SQL有什么好处(除了能够在生产中使用Hive代码)?
谢谢
我需要将大(+ 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运算符,但在使用脚本之前不希望使用这些方法来分解文件.
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) 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:
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) bigdata ×10
python ×3
apache-spark ×2
hadoop ×2
hive ×2
r ×2
amazon-s3 ×1
cloudera ×1
cloudera-cdh ×1
duplicates ×1
flat-file ×1
mongodb ×1
mysql ×1
netcdf ×1
oozie ×1
pandas ×1
shuffle ×1
sqoop ×1
text-files ×1