我是stackoverflow的新手。我需要帮助从“data.txt”文件(大小:1.84 GB)以组织形式提取数据。我正在使用scala-2.10.4和spark-1.1.0。斯卡拉 - RDD [字符串]到RDD [矢量]
的data.txt中的内容在下面的图案
ATOM 00000000 00000004 00000001 17.808 15.749 6.649 -0.548 15.9994
ATOM 00000001 00247690 00000002 20.9489 12.0511 5.4639 0.4238 1.008
有〜300K data.txt文件中的原子具有相同的模式,每个帧中的原子数大约为286890个(第2个属性)。即帧00000000包含286890个原子,并且帧00000001包含286890个原子。
其中:
- 第一属性只是告诉它是否是一个原子条目或HEAD条目(有每 帧只有一个HEAD条目和它有一些系统属性/信息)
- 第二属性是“帧号”
- 第三属性是“原子ID /数”
- 第四属性是“原子类型”
- 第五,第六和第七属性吨原子的位置向量(x,y,z)
- 八个属性是原子的电荷
- 第九个属性是原子的质量。
我需要由帧从上述数据访问数据帧,并计算几件事情等,
1.Sum每一帧的块。公式:M =Σmi(i < - 1至n)
2.惯性惯性。公式:我=Σmiri(我< - 1至n) 和几个更类似的东西。如你所见,我需要从data.txt中提取数据。 我使用的,
val logFile = "/path/data.txt"
val logData = sc.textFile(logFile, 2).cache()
logData是RDD [字符串],我只能用它来计算行数与特定pettern。 但是,我需要从每一帧中得到每一行(即,质量)的第7场来计算质量总和,这是我不知道该怎么做的。
*我需要使用scala,不允许使用其他语言。
请帮我知道该怎么做。 我想把它转换成RDD [矢量]将工作,但我不知道如何访问该矢量的特定字段。
发布您尝试过的以及它失败的方式。 – Daenyth
你真的会问一些问题陈述的代码! 。 – WoodChopper
这样一个小文件,你不需要使用Spark。代码也会更简单。 – kostya