我正在使用Spark 1.6.0.我想传递一些属性文件,如log4j.properties和一些其他客户属性文件.我看到我们可以使用--files但我也看到了SparkContext中有一个方法addFile.假设两个选项都相同,我确实更喜欢使用--files而不是以编程方式添加文件?
我没有找到关于--files的文档,所以--files和SparkContext.addFile两个选项相同吗?
gcl*_*ssn 18
这取决于您的Spark应用程序是以客户端还是群集模式运行.
在客户端模式下,驱动程序(应用程序主机)在本地运行,可以从项目中访问这些文件,因为它们在本地文件系统中可用.SparkContext.addFile应该找到您的本地文件并按预期工作.
如果您的应用程序以群集模式运行.该应用程序通过spark-submit提交.这意味着您的整个应用程序将转移到Spark主服务器或Yarn,它会在特定节点和分离环境中的集群中启动驱动程序(应用程序主服务器).此环境无权访问本地项目目录.因此,所有必要的文件也必须被转移.这可以使用--files选项实现.相同的概念适用于jar文件(Spark应用程序的依赖关系).在群集模式下,需要使用--jars选项添加它们,以便在应用程序主机的类路径中可用.如果您使用PySpark,则有一个--py-files选项.
归档时间: |
|
查看次数: |
8490 次 |
最近记录: |