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