【问题标题】:Read data in blob storage in Databricks在 Databricks 中读取 blob 存储中的数据
【发布时间】:2020-05-28 22:27:34
【问题描述】:

尝试从 DataBricks 读取我在 blob 存储中的数据

spark.conf.set(
  "fs.azure.account.key.ACCOUNTNAME.blob.core.windows.net",
  "MYKEY")

这应该允许连接到我的存储 blob

那么,根据documentation,应该很容易访问我的blob中的文件。

我尝试了很多东西,没有任何效果

一个例子

blob_url = "https://ACCOUNTNAME.blob.core.windows.net/BLOBNAME/PATH/file"
df=pd.read_csv(blob_url)

返回

HTTP 错误 404:指定的资源不存在。

有什么想法吗?如果需要,我可以通过错误消息显示我的所有尝试

另一个错误

%scala

dbutils.fs.ls("wasbs://ACCOUNTNAME@BLOBNAME.blob.core.windows.net/PATH")

shaded.databricks.org.apache.hadoop.fs.azure.AzureException:shaded.databricks.org.apache.hadoop.fs.azure.AzureException:找不到帐户 ACCOUNTNAME.blob.core.windows.net 中的容器 BLOBNAME ,并且我们无法使用匿名凭据创建它,并且在配置中找不到它们的凭据。

【问题讨论】:

    标签: python azure blob databricks azure-databricks


    【解决方案1】:

    您可以查看以下代码以使用 Azure Databricks 从 Blob 存储中读取数据。

    # Set up an account access key:
    # Get Storage account Name and 
    
    spark.conf.set("fs.azure.account.key.chepra.blob.core.windows.net", "gv7nVISerl8wbK9mPGm8TC3CQIEjV3Z5dQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxldlOiA==")
    df = spark.read.csv("wasbs://sampledata@chepra.blob.core.windows.net/Azure/AzureCostAnalysis.csv", header="true")
    df.show()
    

    对于 dbutils.fs.ls 不需要使用像 %scala 这样的魔法单元,您可以使用下面的代码来生成容器中的所有文件:

    # Get file information 
    dbutils.fs.ls("wasbs://sampledata@chepra.blob.core.windows.net/Azure")
    

    希望这会有所帮助。如果您有任何进一步的疑问,请告诉我们。

    【讨论】:

    • 我有错误消息shaded.databricks.org.apache.hadoop.fs.azure.AzureException: com.microsoft.azure.storage.StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
    • 能否请您仔细检查您正在使用的存储密钥和存储容器名称?
    猜你喜欢
    • 2019-08-06
    • 2016-01-18
    • 1970-01-01
    • 2021-12-17
    • 2019-07-28
    • 2023-01-20
    • 2021-02-22
    • 2020-07-07
    • 2015-09-02
    相关资源
    最近更新 更多