如何获取上传文件的路径

时间:2017-01-16 13:50:00

标签: scala apache-spark google-cloud-dataproc

我正在谷歌云上运行一个火花星团,我上传了每个作业的配置文件。使用提交命令上传文件的路径是什么?

在下面的示例中,如何在SparkContext初始化之前读取文件Configuration.properties?我正在使用Scala。

 gcloud dataproc jobs submit spark --cluster my-cluster --class MyJob  --files  config/Configuration.properties --jars my.jar  

1 个答案:

答案 0 :(得分:10)

使用SparkFiles机制(--files参数,SparkContext.addFile)方法分发的文件的本地路径可以使用SparkFiles.get获取:

org.apache.spark.SparkFiles.get(fileName)

您还可以使用SparkFiles.getRootDirectory

获取根目录的路径
org.apache.spark.SparkFiles.getRootDirectory

您可以将这些与标准IO实用程序结合使用来读取文件。

  

如何在初始化SparkContext之前读取文件Configuration.properties?

SparkFiles由驱动程序分发,在上下文初始化之前无法访问,并且首先要分发,必须可以从驱动程序节点访问。因此,问题的这一部分仅取决于您将用于将文件公开给驱动程序节点的存储类型。

相关问题