pyspark写入wasb blob存储容器

时间:2018-03-21 15:31:17

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

我正在运行一个Ubuntu实例,使用N系列实例运行azure计算。在计算之后,我尝试使用类似于URL的

写入Azure blob容器
wasb://containername/path

我正在尝试使用pyspark命令

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

但我收到来自spark的Java io异常,称它不支持wasb文件系统。我想知道是否有人知道如何在不使用HDInsight实例时写入wasb地址?

1 个答案:

答案 0 :(得分:2)

我没有用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是工作程序