[Spark 进阶] -- Spark 如何在运行时读取 --files 添加的 README.md 文件?

本文详细介绍了如何在 Spark 应用程序中,针对 local 和 Yarn-client 模式,读取通过 `--files` 参数添加的 README.md 文件。方法1适用于 local 和 yarn-client,通过访问 HDFS 中的 `.sparkStaging` 目录读取。方法2适用于 Yarn-cluster,利用 `SparkFiles.get()` 函数在 executor 上读取文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Spark 如何在运行时读取 --files 添加的 README.md 文件?

方法 1

  • 本方法适用于 spark local 和 spark on yarn-client 。
  • --files 会把文件上传到 hdfs 的 .sparkStagin/applicationId 目录下,使用上面说的方法先获取到 hdfs 对应的这个目录,然后访问hdfs的这个文件,如下  spark.read().textFile(System.getenv("SPARK_YARN_STAGING_DIR") + "/README.md")
  • 注意:addFile 方法上传的文件 不能使用 textFile 读取!!

方法 2

 

  • 本方法适用于  Spark on Yarn-cluster ,因为本地文件使用 addFile 方法添加时,在集群的 executor 上是找不到文件的,因为只有本地有,所以必须使用 --files 上传,使用 SparkFiles.get(fileName) 读取。
  • SparkFiles.get(fileName) ,我获取的结果是:/.../yarn/local/usercache/resea
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oo寻梦in记

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值