【问题标题】:Scanning azure blob store container in spark java在 spark java 中扫描 azure blob 存储容器
【发布时间】:2016-10-11 02:17:17
【问题描述】:

我需要将 azure blob 容器中的所有文件读入 spark RDD。我使用的是 azure HDInsight,我的集群配置在与输入目录相同的存储帐户中。

是否有任何 java API / 示例可以实现这一点?

【问题讨论】:

    标签: java azure apache-spark azure-hdinsight


    【解决方案1】:

    它看起来像常规的 Spark Java 示例,只需使用“wasb://”文件系统来引用 blob 存储容器:

    import org.apache.spark.sql.Dataset;
    import org.apache.spark.sql.Row;
    Dataset<Row> df = spark.read().json("wasb://yourcontainer@yourstorageaccount.blob.core.windows.net/people.json");
    

    有关 Java API 的更多详细信息,请访问 spark 网站(单击 Java 选项卡):https://spark.apache.org/docs/2.0.0/sql-programming-guide.html#creating-dataframes

    【讨论】:

      【解决方案2】:

      @maxiluk 没有完全回答这个问题。所以我将提供更多细节。他给出的示例将加载一个 json 文件。要加载整个 json 文件目录,您可以使用通配符(这将加载整个容器):

      import org.apache.spark.sql.Dataset;
      import org.apache.spark.sql.Row;
      Dataset<Row> df = spark.read().json("wasb://yourcontainer@yourstorageaccount.blob.core.windows.net/*");
      

      如果您想加载多个目录,但不是全部,您可以传递一个以逗号分隔的目录列表:(如果您想了解更多详细信息,请查看Code

      Dataset<Row> df = spark.read().json("wasb://yourcontainer@yourstorageaccount.blob.core.windows.net/2016/10/01/*,wasb://yourcontainer@yourstorageaccount.blob.core.windows.net/2016/10/02/*");
      

      根据您使用的 spark 版本,如果您有一个 SqlContext 或只是一个 SparkContext,您还可以传入路径的 Seq[String] 而不是逗号分隔的列表。

      【讨论】:

        猜你喜欢
        • 2016-09-21
        • 2013-02-23
        • 2015-04-24
        • 2021-11-02
        • 2011-02-24
        • 1970-01-01
        • 1970-01-01
        • 2022-11-11
        • 2019-03-08
        相关资源
        最近更新 更多