我是Spark和Scala的新手。我正在读火花中的.csv。我想在两列上应用keyBy()
。任何想法。
说column _(0)
和_(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}}