我知道可以使用--files选项通过spark-submit发送文件,但是也可以发送整个文件夹吗?
其实我想发送包含外部库jar文件的lib文件夹。或者--jars选项是否已在executor目录中创建一个lib文件夹?在我的情况下,有必要,有一个lib文件夹,否则会出错。
答案 0 :(得分:2)
不,spark-submit --files
选项不支持发送文件夹,但您可以将所有文件放在zip中,在--files
列表中使用该文件。您可以在spark作业中使用SparkFiles.get(filename)
来加载文件,将其展开并使用爆炸文件。 '文件名'不需要是绝对路径,只需文件名即可。
PS:仅在SparkContext初始化后才有效。
答案 1 :(得分:-1)
我认为您有多种解决方案可以做到这一点。
首先我可以理解你想要自动化这个,但是如果你没有太多的罐子,你可以将它们作为 - jars 选项的参数逐个传递。
否则你可以在Spark安装的spark / jars目录中 sudo mv 所有的jar,但是在集群的情况下它很烦人。
最后,你可以这样做
如果您需要群集模式,则无法解决问题。对于集群模式,我只想修改bash代码来查询jar的HDFS目录。并将所有罐子放在HDFS目录中。
也许有其他解决方案,但那是我的想法,
祝周末愉快!