2016-02-20 144 views

回答

1

我假设RDD到要应用keyBy是阵列的RDD。然后您可以简单地将keyBy方法与映射到前两列的函数进行比较:

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)) 
//)