代码之家  ›  专栏  ›  技术社区  ›  Rahul Shaw

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

  •  0
  • Rahul Shaw  · 技术社区  · 7 年前

    我有一个从加载数据的用例。在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集群中加载文件的正确方向吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   koiralo    7 年前

    要读取文件并加载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 是我测试的完整程序