gpt4 book ai didi

python - 使用 pyspark 从没有 accountkey 的 blob 中读取数据

转载 作者:行者123 更新时间:2023-12-03 01:21:37 24 4
gpt4 key购买 nike

我是 Azure 新手,我想使用 pyspark 读取 blob,但不使用帐户 key 。我曾经使用 DefaultAzureCredential 读取该 blob。我尝试生成 SAS token ,然后运行以下两行:

configuration = pyspark.SparkConf().set(
"fs.azure.sas."+ container_name + ".blob.core.windows.net",
sas)

spark = SparkSession \
.builder \
.config(conf = configuration) \
.appName("Read csv file") \
.getOrCreate()

df = spark.read.csv(location)

但是我收到了这个错误:

org.apache.hadoop.fs.azure.AzureException: org.apache.hadoop.fs.azure.AzureException: No credentials found for account XXXXXXXXX in the configuration, and its container XXXXXXXX is not accessible using anonymous credentials. Please check if the container exists first. If it is not publicly available, you have to provide account credentials.
at org.apache.hadoop.fs.azure.AzureNativeFileSystemStore.createAzureStorageSession(AzureNativeFileSystemStore.java:1098)

为了生成 sas,我使用了 generate_blob_sas 函数。这是否意味着没有帐户 key 就无法读取数据?

最佳答案

我们可以仅使用 SAS token 从 Blob 中读取文件,但为了从 Blob 中提取数据,我们必须指定正确的路径、存储帐户名称和容器名称。

这就是我读取 blob 的方式。

blob_account_name = "<Your Storage Account Name>"
blob_container_name = "<Your Container Name>"
blob_relative_path = "<Relative Path or Directly Mention your blob Name>"
blob_sas_token = "<Your Shared Access Signature Token>"

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

df = spark.read.csv(wasbs_path)

引用文献: Run a Spark job on Azure Databricks Workspace using Azure portal

关于python - 使用 pyspark 从没有 accountkey 的 blob 中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69860096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com