好的,所以我正在运行一个脚本,该脚本依赖于一个复杂的项目,其中包含一堆来自 pyspark 的自定义子模块。我正在运行的工作是我希望它具有针对 Spark 独立实例运行的多个不同版本的代码。
因此,我需要将我的项目放在每个工人的 PYTHONPATH 上,以使其正常工作。如果我将项目的源代码添加到 PYTHONPATH,然后启动独立集群,这会很好。如果我编辑 PYTHONPATH,那么运行时代码将只引用启动时发生的事情,而不是我运行 spark-submit 时有效的内容。
这很重要的原因是因为我希望能够针对多个版本的代码运行作业,这意味着我希望能够动态加载不同版本的代码。在我的脚本中压缩源代码和执行 sc.addPyFile() 之类的操作也不起作用。
有没有办法在 spark-submit 作业之间动态更改我的路径上的 python 代码,而无需重新启动我的独立集群?