无法在spark上找到reduceByKey方法

时间:2016-09-08 07:45:22

标签: java apache-spark

我在Java eclipse上使用spark-core_2.10 jar。我找不到任何reduceBykey方法!我得到reduce的所有建议都是reducetreeReduce。知道这里有什么问题吗?

3 个答案:

答案 0 :(得分:2)

在Java中,PairRDD更加麻烦(与Scala相比,其中类型是自动推断的,或者Python不考虑类型而在运行时期望元组)。由于reduceByKey需要知道密钥,因此它是defined on JavaPairRDD类。

您可以通过致电JavaRDD#mapToPair正常 JavaPairRDD获取RDD。您提供的PairFunction返回元组,其中第一个元素作为结果JavaPairRDD中的键。

答案 1 :(得分:2)

reduceByKey仅适用于存在类似键值的RDD,它们被称为pairRDD。

添加上面的答案,只要您的数据集正确,您是否使用Scala of Java就无所谓了。

ReduceByKey将以下列方式处理元组数据。

val l1 = List((1,2), (1,3), (4,2))
val l1RDD = sc.parallelize(l1)
l1RDD.reduceByKey(_+_)

输出是: (1,5) (4,2)

答案 2 :(得分:0)

发布代码并且您的RDD详细信息reduceByKey是PairRDD的一部分。如果您创建了PairRDD,那么您可以看到reduceByKey

相关问题