码迷,mamicode.com
首页 > 其他好文 > 详细

RDD无reduceByKey方法

时间:2015-05-05 18:28:37      阅读:325      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!