0

我已经使用 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 并得到相同的错误。

在此处输入图像描述

4

3 回答 3

2

您的 file_location 应采用以下格式:

"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

于 2019-02-07T14:05:26.907 回答
0

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

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

于 2019-05-27T08:07:07.250 回答
0

这三行代码对我有用:

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/ 结尾,因为我没有子文件夹。

于 2019-10-23T19:43:03.243 回答