spark shell使用combinebykey和object?

vwkv1x7d  于 2021-06-01  发布在  Hadoop
关注(0)|答案(0)|浏览(257)

我创建了一个简单的数据集来查找 average . 找到了使用 tuplecombineByKey 选项。像这样的最终结果集 (key,(total,no.of values)) ```
scala> mydata.combineByKey( value => (value,1) , (acc:(Int,Int),value) => (acc._1+value,acc._2+1),(acc1:(Int,Int),acc2:(Int,Int))=>(acc1._1 + acc2._1 , acc2._2 + acc2._2))
res75: org.apache.spark.rdd.RDD[(String, (Int, Int))] = ShuffledRDD[42] at combineByKey at :36

scala> res75.take(10)
res77: Array[(String, (Int, Int))] = Array((FWA,(309,1)), (SMX,(62,1)), (BMI,(91,2)), (HLN,(119,1)), (SUN,(118,1)), (HYS,(52,1)), (RIC,(1156,8)), (PSE,(72,1)), (SLC,(8699,8)), (EWN,(55,1)))

为fwa、smx等找到平均值,可以很好地使用 `tuple` 以及 `combineByKey` 选项。
和我试过的一样。已创建对象 `fd` 有两个字段, `name` 以及 `delay` .

scala> case classfd(name:String,delay:Int)
defined class fd
scala>data.take(2)
res73: Array[fd] = Array(fd(DFW,11956), fd(DTW,588))

在上面 `RDD` ,如何使用 `combineByKey` 选择?既然不是 `key` 以及 `value` 一对。
请告诉我怎么找 `average` ? 我在哪里可以找到一些先进的Spark编程我的研究?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题