Azure Databricks-无法从笔记本读取简单的Blob存储文件

时间:2019-02-04 21:27:03

标签: apache-spark databricks azure-databricks

我已经使用databricks运行时版本5.1(包括Apache Spark 2.4.0,Scala 2.11)和Python 3建立了集群。我还向该集群安装了hadoop azure库(hadoop-azure-3.2.0)。 / p>

我正在尝试读取存储在我的blob存储帐户中的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并得到相同的错误。

enter image description here

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您需要在外部位置安装Blob,才能通过Azure Databricks访问它。

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

答案 2 :(得分: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 /结尾,因为我没有子文件夹。

相关问题