当前位置: 首页 > 知识库问答 >
问题:

如何访问databricks笔记本中具有相同容器名称的不同存储帐户

孙经艺
2023-03-14

我有两个不同的容器名称相同的存储帐户。假设tenant1和tenant2作为存储帐户名称,而“appdata”作为两个帐户中的容器名称。我可以创建两个容器并挂载到dbfs。但是我不能通过将存储帐户名传递给挂载点代码来动态地读/写。由于dbfs将mnt/containername作为dbfs中的挂载点,因此只有最新或以前传递的存储帐户的挂载点才会在数据块中引用。如何实现我在这里的目标?

共有1个答案

通宾白
2023-03-14

挂载点应该是静态的,所以你只需要有两个不同的挂载点指向正确的容器,如下所示:

/mnt/storage1_appdata
/mnt/storage2_appdata

因此,如果您希望代码是动态的,请使用f"/mnt/{storage_name}_appdata"

不建议动态地重新挂载容器——当有人在使用它读/写数据时,当您重新挂载挂载点时,您可能会得到神秘的错误。

此外,如果您为集群/作业指定正确的配置,您可以直接访问ADLS(请参阅文档)-您甚至可以同时访问两个容器,只需为两个存储帐户设置配置:

spark.conf.set("fs.azure.account.auth.type.<storage-account-name>.dfs.core.windows.net", 
  "OAuth")
spark.conf.set(
  "fs.azure.account.oauth.provider.type.<storage-account-name>.dfs.core.windows.net", 
  "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set(
  "fs.azure.account.oauth2.client.id.<storage-account-name>.dfs.core.windows.net", 
  "<application-id>")
spark.conf.set(
  "fs.azure.account.oauth2.client.secret.<storage-account-name>.dfs.core.windows.net", 
  dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"))
spark.conf.set(
  "fs.azure.account.oauth2.client.endpoint.<storage-account-name>.dfs.core.windows.net", 
  "https://login.microsoftonline.com/<directory-id>/oauth2/token")
 类似资料:
  • 我想知道是否有任何方法可以告诉我具有相同标记名称、文本和类(如果有)的元素与具有相同标记名称、文本和相同类(如果有)的其他元素不同。为了澄清,请考虑以下超文本标记语言片段: 现在在上面的代码中,我如何使用div标签和text将两个元素分开。另请注意,这里的两个元素没有id。 上面的例子非常简单,但实际情况可能更复杂。因此,如果您好心地向我提出一个概括的答案,我将不胜感激。谢谢。

  • 我使用的是,我需要展平包含同名字段的文档。 我创建的文档如下所示: 在那之后,我试图像下面这样压平文档: 我的主要方法是: 展平后,我得到的文档包含一个展平字段,但我必须得到两个展平字段。 如何解决此问题?

  • 问题内容: 如果您有一个包含带有重复属性的文本输入的表单,并且该表单已经过帐,那么您仍然能够从PHP数组中获取所有字段的值吗? 问题答案: 否。仅最后一个输入元素可用。 如果要使用相同名称的多个输入,请使用输入名称属性。然后将包含foo的数组,其中包含来自输​​入元素的所有值。 如果不使用则仅包含最后一个值的原因是因为PHP基本上只会爆炸并遍历要填充的原始查询字符串。当遇到已经存在的名称/值对时,

  • 我想要通过 databricks 从 Azure 订阅中动态获取所有存储帐户和容器。 因此,我可以遍历容器中的每个文件,并获取我之前完成的文件及其大小。 现在,我想动态地将存储帐户和容器设置为在 databricks 环境中进行处理。

  • 问题内容: 我想解析一个json文件,但它经过这样的事情: 但是大约有三千个这样的对象。我一直在使用Gson解析我的json对象,但是我怎么解析这种文件呢?以及如何检索名称“ CDG”或“ ORY”? 问题答案: 您可以尝试如下操作: 使用gson,您可以按以下方式检索键名: 并使用java- json 可以执行以下操作: 从网址获取json:

  • 问题内容: 如何在不同的程序包中访问两个具有相同名称的类? 和 所有这些都在同一个班级 谢谢。 问题答案: 您将必须导入另一个,您将编写完全合格的路径 例如在您的代码中: