【问题标题】:Azure Databricks - Unable to read simple blob storage file from notebookAzure Databricks - 无法从笔记本读取简单的 Blob 存储文件
【发布时间】:2019-06-28 16:32:06
【问题描述】:

我已经使用 databricks 运行时版本 5.1(包括 Apache Spark 2.4.0、Scala 2.11)和 Python 3 建立了一个集群。我还在集群中安装了 hadoop azure 库 (hadoop-azure-3.2.0)。

我正在尝试读取存储在我的 blob 存储帐户中的 blob,它只是一个文本文件,其中包含一些由空格分隔的数字数据。我使用databricks生成的模板来读取blob数据

    spark.conf.set(
      "fs.azure.account.key."+storage_account_name+".blob.core.windows.net",
      storage_account_access_key)
    df = spark.read.format(file_type).option("inferSchema", "true").load(file_location)

file_location 是我的 blob 文件 (https://xxxxxxxxxx.blob.core.windows.net)。

我收到以下错误:

没有名为 https 的文件系统

我尝试使用 sc.textFile(file_location) 读取 rdd 并得到相同的错误。

【问题讨论】:

    标签: apache-spark databricks azure-databricks


    【解决方案1】:

    您的文件位置应采用以下格式:

    "wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net/<your-directory-name>"
    

    见:https://docs.databricks.com/spark/latest/data-sources/azure/azure-storage.html

    【讨论】:

      【解决方案2】:

      您需要使用外部位置装载 blob 才能通过 Azure Databricks 访问它。

      参考:https://docs.databricks.com/spark/latest/data-sources/azure/azure-storage.html#mount-azure-blob-storage-containers-with-dbfs

      【讨论】:

        【解决方案3】:

        这三行代码对我有用:

        spark.conf.set("fs.azure.account.key.STORAGE_ACCOUNT.blob.core.windows.net","BIG_KEY")
        
        df = spark.read.csv("wasbs://CONTAINER@STORAGE_ACCOUNT.blob.core.windows.net/")
        
        df.select('*').show()
        

        注意第 2 行以 .net/ 结尾,因为我没有子文件夹。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-01
          • 2022-01-19
          • 1970-01-01
          • 2012-06-16
          • 2021-03-19
          • 1970-01-01
          相关资源
          最近更新 更多