pyspark中的并行列表

时间:2019-07-19 10:25:11

标签: apache-spark pyspark rdd bigdl

我有一个接受数组RDD的函数。由于我需要并行调用此函数多次,因此我想到了使用RDD的RDD(RDD [Rdd [array]]),但是意识到不可能创建RDD的RDD。所以我创建了RDD的列表,但不知道如何为列表的每个元素并行调用该函数。

PFB代码段:

def function(x) //x is RDD[array]
  result=prediction(x)

listRDD.map(lambda t : function(t)) //I want something equivalent to this

有什么办法可以并行化吗?可能是并行集合(用于scala,但不确定pyspark是否可用)是一种方法,但我不知道从哪里开始

1 个答案:

答案 0 :(得分:0)

如果listRDD是python列表,则可以

for rdd in listRDD: 
    rdd = rdd.map(f)

通常认为,拥有rdd / dataframe的python列表是一种可怕的想法

您应该改用union 创建您的第一个rdd,然后使用firstrdd = firstrdd.union(newrdd) 确保它们都具有相同的架构,并且列的顺序也相同(使用.select()最终对列重新排序)