我想将存档依赖项添加到我的spark执行器中,其工作方式类似于将存档路径传递给spark-submit时使用--archives
选项。但是,直到运行时我才知道需要哪些依赖项,所以我需要在spark作业已经提交之后以编程方式执行此操作。
有办法做到这一点吗?我目前正在研究一个破解的解决方案,我从运行在执行器上的函数中下载所需的存档,但是这比让驱动程序只下载存档一次然后分发给执行器要慢得多。
假设您的资源管理器是YARN,可以设置属性spark.yarn.dist.archives当创建SparkSession时.
SparkSession.builder
.appName("myappname")
.conf("spark.yarn.dist.archives", "file1.zip#file1,file2.zip#file2,...")
.getOrCreate()
更多信息在这里:https://spark.apache.org/docs/latest/running-on-yarn.html
你可以找到属性spark.yarn.dist.files和spark.yarn.dist.jars有用。