我可以使用spark-submit发送整个文件夹吗?

时间:2017-09-01 15:18:13

标签: apache-spark

我知道可以使用--files选项通过spark-submit发送文件,但是也可以发送整个文件夹吗?

其实我想发送包含外部库jar文件的lib文件夹。或者--jars选项是否已在executor目录中创建一个lib文件夹?在我的情况下,有必要,有一个lib文件夹,否则会出错。

2 个答案:

答案 0 :(得分:2)

不,spark-submit --files选项不支持发送文件夹,但您可以将所有文件放在zip中,在--files列表中使用该文件。您可以在spark作业中使用SparkFiles.get(filename)来加载文件,将其展开并使用爆炸文件。 '文件名'不需要是绝对路径,只需文件名即可。

PS:仅在SparkContext初始化后才有效。

答案 1 :(得分:-1)

我认为您有多种解决方案可以做到这一点。

首先我可以理解你想要自动化这个,但是如果你没有太多的罐子,你可以将它们作为 - jars 选项的参数逐个传递。

否则你可以在Spark安装的spark / jars目录中 sudo mv 所有的jar,但是在集群的情况下它很烦人。

最后,你可以这样做

bash solution

如果您需要群集模式,则无法解决问题。对于集群模式,我只想修改bash代码来查询jar的HDFS目录。并将所有罐子放在HDFS目录中。

也许有其他解决方案,但那是我的想法,

祝周末愉快!