将pyspark中的Python模块传送到其他节点

mgo*_*ser 23 python apache-spark

如何将C编译模块(例如,python-Levenshtein)发送到Spark集群中的每个节点?

我知道我可以使用独立的Python脚本在Spark中发布Python文件(下面的示例代码):

from pyspark import SparkContext
sc = SparkContext("local", "App Name", pyFiles=['MyFile.py', 'MyOtherFile.py'])
Run Code Online (Sandbox Code Playgroud)

但是在没有".py"的情况下,我该如何运送模块?

Jos*_*sen 38

如果您可以将模块打包到一个.egg或一个.zip文件中,您应该能够在pyFiles构建SparkContext时将其列出(或者您可以稍后通过sc.addPyFile添加它).

对于使用setuptools的Python库,您可以运行python setup.py bdist_egg以构建egg分发.

另一个选择是在群集范围内安装库,方法是在每台计算机上使用pip/easy_install,或者通过在群集范围的文件系统(如NFS)上共享Python安装.

  • 如果我的* .egg文件依赖于其他第三方库,这也可以吗? (3认同)