我写了一个简单的工作,使用一个使用模块的自定义函数来过滤rdd。
放置import语句的正确位置在哪里?
答案 0 :(得分:0)
您可以使用命令行spark-submit
接口将作业作为具有相关模块的批处理操作提交。从Spark 1.6.1 documentation开始,它具有以下签名......
./bin/spark-submit \
--class <main-class>
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
如果您的python脚本被调用python_job.py
并且它所依赖的模块是other_module.py
,那么您将调用
./bin/spark-submit python_job.py --py-files other_module.py
这将确保other_module.py位于工作节点上。您通常会提交完整的套餐,因此您需要提交other_module_library.egg
甚至.zip
。这些都应该在--py-files
中被接受。
但是,如果你想在交互式shell中工作,我相信你必须坚持在函数中导入模块。