【问题标题】:pyspark write to wasb blob storage containerpyspark 写入 wasb blob 存储容器
【发布时间】:2018-03-21 23:55:57
【问题描述】:

我正在运行一个 Ubuntu 实例以使用 N 系列实例运行 azure 计算。计算后,我尝试使用类似 URL 的 wasb 写入 Azure blob 容器

wasb://containername/path

我正在尝试使用 pyspark 命令

sparkSession.write.save('wasb://containername/path', format='json', mode='append')

但是我从 spark 收到一个 Java io 异常,说它不支持 wasb 文件系统。我想知道是否有人知道如何在不使用 HDInsight 实例的情况下写入 wasb 地址?

【问题讨论】:

    标签: python-3.x azure apache-spark pyspark


    【解决方案1】:

    我还没有使用 pyspark 完成它,但这里是我使用 scala 和 spark 的方法。

    在sbt中添加依赖

    "org.apache.hadoop" % "hadoop-azure" % "2.7.3"
    

    然后定义要在底层Hadoop 配置中使用的文件系统。

    val spark = SparkSession.builder().appName("read azure storage").master("local[*]").getOrCreate()
    
    spark.sparkContext.hadoopConfiguration.set("fs.azure", "org.apache.hadoop.fs.azure.NativeAzureFileSystem")
    spark.sparkContext.hadoopConfiguration.set("fs.azure.account.key.yourAccount.blob.core.windows.net", "yourKey ")
    
    val baseDir = "wasb[s]://BlobStorageContainer@yourUser.blob.core.windows.net/"
    

    现在将数据帧写入 blob 容器

    resultDF.write.mode(SaveMode.Append).json(baseDir + outputPath)
    

    希望这有帮助 here 是工作程序

    【讨论】:

    • 您分享的链接显示只从 azure 读取数据而不是写入数据。
    • 添加文件系统配置后,您应该能够读写。上面有写数据框的例子。
    猜你喜欢
    • 2019-09-17
    • 1970-01-01
    • 2021-04-30
    • 2019-03-08
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多