【问题标题】:How to use a custom metadata file on azure hdinsight spark cluster如何在 azure hdinsight spark 集群上使用自定义元数据文件
【发布时间】:2018-09-19 16:25:42
【问题描述】:
我有一个在 Azure HDinsight spark 集群上运行作业时从 .dat 文件(存储在 azure blob 存储中)加载数据的用例。
我通过this doc来加载它,如下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 集群中加载文件吗?
【问题讨论】:
标签:
azure
apache-spark
pyspark
azure-hdinsight
azure-blob-storage
【解决方案1】:
要读取文件并在 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 是我测试的完整程序