将 pyspark 中的 Python 模块运送到其他节点
- 2025-04-10 09:46:00
- admin 原创
- 20
问题描述:
如何将 C 编译模块(例如,python-Levenshtein)发送到Spark集群中的每个节点?
我知道我可以使用独立的 Python 脚本(下面的示例代码)在 Spark 中发送 Python 文件:
from pyspark import SparkContext
sc = SparkContext("local", "App Name", pyFiles=['MyFile.py', 'MyOtherFile.py'])
但是在没有“.py”的情况下,我该如何运送模块?
解决方案 1:
如果您可以将模块打包到.egg
或.zip
文件中,则您应该能够在pyFiles
构建 SparkContext 时将其列出(或者您可以稍后通过sc.addPyFile添加它)。
对于使用 setuptools 的 Python 库,您可以运行python setup.py bdist_egg
来构建 egg 发行版。
另一种选择是在整个集群范围内安装库,方法是在每台机器上使用 pip/easy_install,或者通过集群范围的文件系统(如 NFS)共享 Python 安装。
解决方案 2:
这里有两个主要选项:
如果它是一个单个文件或
.zip
/.egg
,则将其传递给SparkContext.addPyFile
。插入
pip install
集群机器的引导代码。
+ 一些云平台(在本例中为 DataBricks)具有 UI 以使这变得更容易。
人们还建议使用它来python shell
测试模块是否存在于集群中。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD