作为整体在rdd上执行的任何函数

时间:2017-05-16 14:07:36

标签: apache-spark

我是新来的火花。我需要一个能在整个RDD上工作的函数。不在map()的RDD上的每个元素上。 例: JavaRDD<String> str= sc.parallelize(list); str.map(func); 现在我想在str上执行整个str而不是str的每个元素。 有什么能达到我的目的吗?

3 个答案:

答案 0 :(得分:0)

我真的不明白你想要达到的目的,但我只想说你可以在RDD上应用两种类型的操作,这里是{{3}的简单解释}}

  

转换,从现有数据集创建新数据集,以及在数据集上运行计算后将值返回给驱动程序的操作。例如,map是一个转换,它通过一个函数传递每个数据集元素,并返回一个表示结果的新RDD。另一方面,reduce是一个使用某个函数聚合RDD的所有元素并将最终结果返回给驱动程序的动作

我认为您必须使用action类型的操作,例如reducecount ...分机

希望这对您有所帮助,否则请编辑问题并准确解释您想要实现的目标。

答案 1 :(得分:0)

不确定您要实现的目标,但可以使用在整个数据分区上运行的mapPartition

答案 2 :(得分:0)

我想建议让它转换为DataFrame!

from pyspark.sql import toDF
df = rdd.toDF(['column', 'value'])

它解决了我的问题,或者请告诉我为什么你不想使用DataFrame对象