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

如何使用 SAS 读取 Azure 数据砖中的 Blob

鲁洋
2023-03-14

我是数据库管理员的新手。我编写示例代码来读取Azure数据库管理员中的存储Blob。

blob_account_name = "sars"
blob_container_name = "mpi"
blob_sas_token =r"**"
ini_path = "58154388-b043-4080-a0ef-aa5fdefe22c8"

inputini = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, ini_path)
spark.conf.set("fs.azure.sas.%s.%s.blob.core.windows.net"% (blob_container_name, blob_account_name), blob_sas_token)

print(inputini)
ini=sc.textFile(inputini).collect()

它抛出错误:

Container mpi in account sars.blob.core.windows.net not found

我猜它在WASBS链接中没有附加SAS令牌,所以它没有读取数据的权限。

如何在wasbs链接中连接SAS。

共有1个答案

涂溪叠
2023-03-14

这是例外行为,您无法从数据砖访问读取专用存储。若要从启用了防火墙或在 vnet 中创建的存储访问专用数据,必须在 Azure 虚拟网络中部署 Azure 数据砖,然后将存储帐户的防火墙中的 Vnet 地址范围列入允许列表。可以参考配置 Azure 存储防火墙和虚拟网络。

私人访问:

当您向“私人(无匿名访问)”提供访问级别时。

输出:错误消息

shaded . data bricks . org . Apache . Hadoop . fs . azure . azure异常:shaded . data bricks . org . Apache . Hadoop . fs . azure . azure异常:找不到帐户cheprasas.blob.core.windows.net中的容器carona,我们无法使用匿名凭据创建它,并且在配置中找不到它们的凭据。

带容器访问:

当您为“容器(容器和Blob的匿名读取访问)”提供访问级别时。

输出:您将能够看到没有任何问题的输出。

参考:快速入门:使用 Azure 门户在 Azure 数据砖上运行 Spark 作业。

 类似资料:
  • 我正在使用 Azure Blob 存储来存储数据,并使用装载将此数据馈送到自动加载程序。我正在寻找一种方法来允许自动加载器从任何装载加载新文件。假设我的装载中有这些文件夹: mnt/ ├─ blob_container_1 ├─ blob_container_2 当我使用 .load('/mnt/') 时,没有检测到新文件。但是当我单独考虑文件夹时,它像.load('/mnt/blob_conta

  • 问题内容: 我在通过火花流从天蓝色斑点读取数据时遇到问题 上面的代码适用于HDFS,但无法从Azure blob读取文件 上面是在azure UI中显示的路径,但是这行不通,我是否丢失了某些内容,以及如何访问它。 我知道Eventhub是流数据的理想选择,但是我目前的情况要求使用存储而不是队列 问题答案: 为了从Blob存储中读取数据,需要完成两件事。首先,您需要告诉Spark在基础Hadoop配

  • 本文向大家介绍如何使用ajax读取Json中的数据,包括了如何使用ajax读取Json中的数据的使用技巧和注意事项,需要的朋友参考一下 本文给大家分享一下,如何使用ajax读取Json中的数据。 一、基础知识 什么是json? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 *

  • 我正在尝试使用 azure 函数读取 azure blob 内容。 容器名称始终相同,Blob名称由触发该函数的队列消息传递。 当我运行此函数时,函数超时(超过5分钟)。 带有blob名称的队列消息是正确的并显示出来,blob只包含一个长json,大约是292kb。 我尝试在创建新blob时直接触发该函数,但它返回了一个带有流的对象,您知道任何方法使该流可读吗? 使用上面的代码,我可以正确获取bl

  • 我正在使用 Blob 触发器 Azure 函数来获取 Blob 文件数据,只要任何文件上传到容器。 使用上述方法,我能够获取上传的项目的URL。目前,上述代码是使用 Azure 提供的“在门户中开发”选项生成的。 是否有一种方法可以获取已上传的Blob文件的SAS URL?

  • 我将使用Apache Camel编写一个CRUD应用程序,非常像下面的示例:http://java.dzone.com/articles/rest-apache-camel 但我想使用JPA,而不仅仅是JDBC。 我看过Camel JPA组件,认为我可以使用它。但要从数据库中读取数据,它需要我定义一个消费者endpoint。 我想从JDBC示例中执行以下操作: 即调用JPA组件作为生产者。 这可能