Pyspark:如何在 Yarn 集群上运行作业时对多个文件使用 --files 标签

Posted

技术标签:

【中文标题】Pyspark:如何在 Yarn 集群上运行作业时对多个文件使用 --files 标签【英文标题】:Pyspark: How to use --files tag for multiple files while running job on Yarn cluster 【发布时间】:2017-08-05 07:16:51 【问题描述】:

我是 Spark 的新手,并且使用 python 来使用 pyspark 编写作业。我想在纱线集群上运行我的脚本,并通过发送log4j.properties 来删除详细日志记录,以便使用--files 标签将日志记录级别设置为WARN。我有一个脚本使用的本地 csv 文件,我也需要包含它。如何使用--files 标签来包含这两个文件?

我正在使用以下命令:

/opt/spark/bin/spark-submit --master yarn --deploy-mode cluster --num-executors 50 --executor-cores 2 --executor-memory 2G --files /opt/spark/conf/log4j.properties ./list.csv ./read_parquet.py

但我收到以下错误: Error: Cannot load main class from JAR file:/opt/spark/conf/./list.csv `

【问题讨论】:

【参考方案1】:

您可以通过文件路径以这样的字符串发送逗号分隔的文件:

--文件 "filepath1,filepath2,filepath3" \

为我工作!!

【讨论】:

【参考方案2】:

您可以删除“。”第二个文件的 / 前面...在这里我删除了它正在工作。

/opt/spark/bin/spark-submit --master yarn --deploy-mode cluster --num-executors 50 --executor-cores 2 --executor-memory 2G --files /opt/spark/conf/log4j.properties /list.csv  /read_parquet.py

【讨论】:

以上是关于Pyspark:如何在 Yarn 集群上运行作业时对多个文件使用 --files 标签的主要内容,如果未能解决你的问题,请参考以下文章

YARN 集群上的 PySpark 分布式处理

PySpark任务在YARN集群上运行python 算法

PySpark任务在YARN集群上运行python 算法

无法让 pyspark 作业在 hadoop 集群的所有节点上运行

在 Yarn 集群上运行 Spark 作业的问题

如何提交依赖于 google dataproc 集群的 pyspark 作业