小编use*_*842的帖子

将Python函数作为对象传递给Spark

我一直在使用这个在线jupyter笔记本https://tmpnb.org/上的Spark和Python,并尝试了3种传递python函数的方法:

1)使用地图

import numpy as np
def my_sqrt(x):
    return np.sqrt(x)

sc.parallelize(range(10)).map(my_sqrt).collect()
Run Code Online (Sandbox Code Playgroud)

2)并行化my_sqrt并调用它

sc.parallelize([(my_sqrt, i) for i in range(10)]).map(lambda x : x[0](x[1])).collect()
Run Code Online (Sandbox Code Playgroud)

3)并行化np.sqrt并调用它

sc.parallelize([(np.sqrt, i) for i in range(10)]).map(lambda x : x[0](x[1])).collect()
Run Code Online (Sandbox Code Playgroud)

(1)和(3)做工作,(2)没有.首先,我想了解为什么/如何(1)和(3)工作.其次,我想了解为什么(2)没有,以及可以做些什么来使它工作.

python apache-spark pyspark

5
推荐指数
1
解决办法
902
查看次数

标签 统计

apache-spark ×1

pyspark ×1

python ×1