Apache spark 为在workers中运行的代码导入模块

Apache spark 为在workers中运行的代码导入模块,apache-spark,pyspark,Apache Spark,Pyspark,我编写了一个简单的作业,该作业使用使用模块的自定义函数过滤rdd 导入声明的正确位置在哪里 将导入放在驱动程序代码中没有帮助 将导入放在filter函数中可以工作,但看起来不是很好 您可以使用命令行spark submit界面将作业提交为具有相关模块的批处理操作。从Spark 1.6.1开始,它有以下特征 ./bin/spark-submit \ --class <main-class> --master <master-url> \ --deploy-mo

我编写了一个简单的作业,该作业使用使用模块的自定义函数过滤rdd

导入声明的正确位置在哪里

  • 将导入放在驱动程序代码中没有帮助
  • 将导入放在filter函数中可以工作,但看起来不是很好

您可以使用命令行
spark submit
界面将作业提交为具有相关模块的批处理操作。从Spark 1.6.1开始,它有以下特征

./bin/spark-submit \
  --class <main-class>
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]
这将确保其他_module.py位于工作节点上。更常见的情况是,您将提交一个完整的包,以便提交
其他模块库.egg
甚至
.zip
。这些都应该在
--py文件中可以接受


但是,如果您想在交互式shell中工作,我相信您必须坚持在函数中导入模块。

这将处理代码分发给工作人员,而不是实际导入
 ./bin/spark-submit python_job.py --py-files other_module.py