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