我是相对较新的火花,我试图通过多个键同时分组数据。如何在Scala Spark作业中的多个键上使用ReduceByKey
我有一些数据,我映射所以它最终看起来像这样:
((K1,K2,K3),(V1,V2))
我的目标是小组由(K1 ,K2,K3),并分别总结V1和V2与落得:
((K1,K2,K3),(SUM(V1),SUM(V2))
下面是代码我有到目前为止:
val filepath = "file.avro"
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)
val data = sqlContext.read.avro(filepath)
val dataRDD = data.rdd
val mappedDataRDD = dataRDD.map{
case (v, w, x, y, z) => ((v,w,x), (y, z))
}.reduceByKey((x,y)=> ???)
所以我正在寻找如何reduceByKey,所以我可以按(v,w,x)键和y和z求和。
'???'='(x._1 + y._1,x._2 + y._2)' – Alec