首页 > 其他 > 详细

RDD无reduceByKey方法

时间:2015-05-05 18:25:21      阅读:839      评论:0      收藏:0      [点我收藏+]

经常写代码的时候发现rdd没有reduceByKey的方法,这个发生在spark1.2及其以前对版本,因为rdd本身不存在reduceByKey的方法,需要隐式转换成
PairRDDFunctions才能访问,因此需要引入Import org.apache.spark.SparkContext._。不过到了spark1.3的版本后,隐式转换的放在rdd的object中,自动引入,不要引入其他的包。

定义了额外的rdd操作,比如哦说key-value-pair RDDs的 reduceByKey方法 需要用到的隐式转换.
object RDD {
//下面这个隐式转换在spark1.3之前原来是在SparkContext中,需要import SparkContext._ 之后才能使用。现在已经把他移到这,现在代码能够自动编译引入。但是原来的sparkContext中的继续保留。

implicit def rddToPairRDDFunctions[K, V](rdd: RDD[(K, V)])
(implicit kt: ClassTag[K], vt: ClassTag[V], ord: Ordering[K] = null): PairRDDFunctions[K, V] = {
new PairRDDFunctions(rdd)
}

至于什么是隐式转换,简单来讲就是scala偷梁换柱换柱,让隔壁老王来干你干不了的事情了。

RDD无reduceByKey方法

原文:http://www.cnblogs.com/luckuan/p/4479551.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!