如何在 azure hdinsight spark 集群上使用自定义元数据文件

How to use a custom metadata file on azure hdinsight spark cluster

我有一个从 .dat 文件(存储在 azure blob 存储中)加载数据的用例,用于 Azure HDinsight spark 集群上的 while 运行 作业。 我通过 this 文档加载它,如下 python(pyspark):

file='wasb:///<container_name>/<path>/CITYIP.dat'
with open(file) as f:
    print f.read()

抛出 IOError: No such file or directory。我觉得,我这里做错了。

有人可以指出正确的方向,以便使用 pyspark 在 azure HDinsight spark 集群中加载文件吗?

要读取文件并在 spark 中加载,请确保添加 hadoop-azure 依赖项 "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/"

现在读取文本文件

val file = spark.read.textFile(baseDir + "pathToTextFile")

注:上面的代码是scala的希望大家可以在pyspark

中修改

Here 是我测试的完整程序