运送python模块在pyspark到其他节点?
如何将C编译模块(例如,python-Levenshtein)发送到spark集群中的每个节点?
我知道我可以使用独立的python脚本(下面的示例代码)在spark中发布python文件:
from pyspark import SparkContext sc = SparkContext("local", "App Name", pyFiles=['MyFile.py', 'MyOtherFile.py'])
但是在没有“.py”的情况下,我该如何运送模块?
如果您可以将模块打包到.egg
或.zip
文件中,那么在构buildpyFiles
时应该能够在pyFiles
列出它(或者您可以稍后通过sc.addPyFile添加它)。
对于使用setuptools的Python库,您可以运行python setup.py bdist_egg
来构build一个egg distribution。
另一个select是通过在每台机器上使用pip / easy_install或通过在整个群集文件系统(如NFS)上共享Python安装来在群集范围内安装库。