我正在启动一个pyspark应用程序,它使用一个通过 --py-files
.
拉链的结构如下:
mypackage.zip
└── mypackage
├── file1.py
└── file2.py
要从shell启动,我使用:
spark-submit --py-files mypackage.zip main.py
要以编程方式启动,我使用:
new SparkLauncher()
.addPyFile(zipFile.toString())
.setAppResource(mainFile.toString())
当我使用 spark-submit
它工作正常,意味着它可以导入包并使用它。
当我使用 SparkLauncher
类,它似乎使用的是较旧版本的zip。我想是这样的,因为旧的拉链 __init__.py
一个印刷品,它是印刷品。此外,应用程序随后崩溃,因为包的名称在旧zip中是不同的。
但是这个应用程序和 spark-submit
,所以问题是两种发射方法之间的变化。
你怎么能 spark-submit
以及 SparkLauncher
表现不同?有什么奇怪的吗?我也尝试过添加 .setConf("spark.files.overwrite", "true")
没有效果。
编辑:不知何故,包被缓存在 /tmp/mypackage
在运行驱动程序的节点上。什么?这怎么可能?删除目录后,它可以正常工作。
暂无答案!
目前还没有任何答案,快来回答吧!