广播单值Spark(python)

时间:2016-05-11 09:45:09

标签: apache-spark pyspark broadcast

假设我有以下列表和单个值:

alist = [1,2,3,4,5]
alistRDD = sc.parallelize(alist)
single_value = 3

我得到了以下功能:

def a_fun(x,y): 
    return x+y

我正在做以下事情:

alistRDD.map(lambda x:a_fun(x,single_value))

所以我用这个函数作为第二个参数single_value。为了在所有节点中广播这个single_value是否有意义?

1 个答案:

答案 0 :(得分:0)

当驱动程序向工作者提交此转换时,它将简单地传递自身的值而不是参数。因此从性能角度来看,它甚至可能更好。在没有任何逻辑的情况下分配的广播数据没有任何价值。您最好简单地传递变量,让序列化过程将其转换为值本身。希望这能回答你的问题。