我一直在玩 Spark,我设法让它来处理我的数据。我的数据由平面分隔的文本文件组成,由 50 列和大约 2000 万行组成。我有可以处理每一列的 scala 脚本。
在并行处理方面,我知道 RDD 操作在多个节点上运行。因此,每次我处理一列时,它们都会并行处理,但列本身是按顺序处理的。
一个简单的例子:如果我的数据是 5 列文本分隔文件并且每列包含文本,我想对每列进行字数统计。我会做:
for(i <- 0 until 4){
data.map(_.split("\t",-1)(i)).map((_,1)).reduce(_+_)
}
尽管每列的操作是并行运行的,但列本身是按顺序处理的(我知道的措辞不好。对不起!)。换句话说,在第 1 列完成后处理第 2 列。第 3 列在第 1 列和第 2 列完成后处理,依此类推。
我的问题是:有没有一次处理多个列?如果你知道一种方法,cor一个教程,你介意与我分享吗?
谢谢你!!