0

我正在尝试将 Azure Blob 存储容器挂载到 DBFS。实现如下。得到以下错误。不知道为什么我收到错误 您是否删除了挂载点的 AWS 密钥? 当我尝试连接到 azure blob 存储时。

我在这里有什么遗漏吗?你能帮我解决这个问题吗 - 谢谢 -

代码实现

dbutils.fs.mount(
  source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net",
  mount_point = "/mnt/iotdata",
  extra_configs = {"fs.azure.account.key.<storage-account-name>.blob.core.windows.net":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})

错误

ExecutionError: An error occurred while calling o275.mount.
: com.databricks.backend.daemon.data.common.InvalidMountException: The backend could not get session tokens for path /mnt. Did you remove the AWS key for the mount point?
    at com.databricks.backend.daemon.data.common.InvalidMountException$.apply(DataMessages.scala:612)
    at com.databricks.backend.daemon.data.filesystem.MountEntryResolver.resolve(MountEntryResolver.scala:84)
4

1 回答 1

0

我按照以下步骤从 Azure Blob 存储成功装载和读取数据帧中的数据。

Step1:导入pyspark和SparkSession

import pyspark
from pyspark.sql import SparkSession

在此处输入图像描述

Step2:使用以下命令卸载任何现有的挂载点

dbutils.fs.unmount("/mnt")

在此处输入图像描述

Step3:获取存储密钥

转到存储帐户并选择访问密钥

在此处输入图像描述

现在单击显示键,如下面的屏幕截图所示

在此处输入图像描述

然后复制第一个密钥。

在此处输入图像描述

Step4:要挂载 blob 存储,请使用以下代码:

dbutils.fs.mount(
  source = "wasbs://<container_name>@<storage_account_name>.blob.core.windows.net",
  mount_point = "/mnt/Sales",
  extra_configs = {"fs.azure.account.key.<storage_account_name>.blob.core.windows.net": "key"})

在此处输入图像描述

从您给定的代码中,您必须 dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")仅将其删除并替换为 Azure blob 存储密钥。

Step5: 从 blob 存储容器中读取数据帧中的数据

在此处输入图像描述

Step6:数据框

在此处输入图像描述

第 7 步: blob 存储中的原始 CSV 文件

在此处输入图像描述

于 2021-08-27T09:34:27.577 回答