如何获取上传文件的路径

How to get path to the uploaded file

我是 运行 google 云上的一个 spark 集群,我为每个作业上传一个配置文件。使用提交命令上传的文件的路径是什么?

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

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

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

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

您还可以使用SparkFiles.getRootDirectory获取根目录的路径:

org.apache.spark.SparkFiles.getRootDirectory

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

how can I read the file Configuration.properties before the SparkContext has been initialized?

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