我已经使用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并得到相同的错误。
答案 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访问它。
答案 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 /结尾,因为我没有子文件夹。