将两列传递给keyBy()Spark

时间:2016-02-20 00:30:18

标签: scala join apache-spark

我是Spark和Scala的新手。我正在读火花中的.csv。我想在两列上应用keyBy()。任何想法。

column _(0)_(1)

1 个答案:

答案 0 :(得分:2)

我假设你想要应用的RDD keyBy是一个RDD的数组。然后,您只需提供val rdd=sc.parallelize(List( Array(1,2,3), Array(1,2,4), Array(2,3,1), Array(2,3,2) )) val keyedRdd=rdd.keyBy{a=>(a(0),a(1))} keyedRdd.take(4) //Array[((Int, Int), Array[Int])] = Array( // ((1,2),Array(1, 2, 3)), // ((1,2),Array(1, 2, 4)), // ((2,3),Array(2, 3, 1)), // ((2,3),Array(2, 3, 2)) //) 方法,并将函数映射到前两列:

{{1}}