我正在运行一个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地址?
答案 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是工作程序