【问题标题】:How to get path to the uploaded file如何获取上传文件的路径
【发布时间】:2017-05-31 09:08:03
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    org.apache.spark.SparkFiles.getRootDirectory
    

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

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

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

    【讨论】:

    • 我尝试在 2.4.4 创建 sparkSession 后打开这个文件。使用new java.io.File() 无法打开此文件。将文件作为流打开时总是抛出 FileNotFound 异常。
    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 2022-12-07
    • 2016-01-14
    • 1970-01-01
    • 2017-02-20
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多