gpt4 book ai didi

python - 如何在Python中将一个项目的存储桶中的数据加载到另一个项目的表中?

转载 作者:行者123 更新时间:2023-12-01 09:21:51 25 4
gpt4 key购买 nike

我有两个项目。我将数据存储在 project_A 中,并在 project_B 中构建表。我已经为它们创建了一个 service_account.json ,但是当我需要从 project_A 加载数据时,我不知道如何同时使用这两个文件并在 project_B 中构建表。

数据存储在URI中:

gs://project_A//*

该表将位于 project_B 表名称 huge_table

from google import storage, bigquery

proj_a_client = storage.Client.from_service_account_json(service_acct_A.json)
proj_b_client = bigquery.Client.from_service_account_json(service_acct_B.json)

dest_table = proj_b_client.dataset('DS_B').table('huge_table')
uri = 'gs://project_A//*'

job_config = bigquery.LoadJobConfig()
load_job = proj_b_client.load_table_from_uri(uri,
dest_table,
job_config=job_config)

但我收到错误:

google.api_core.exceptions.Forbidden: 403 Access Denied: File gs://project_A/: Access Denied

最佳答案

您必须确保 service_acct_B 具有对 project_A 的存储访问权限:

project_A中,

  • 转至IAM 和管理
  • 添加具有(至少)存储对象查看者角色的成员service_acct_B

事实上,您在这里并不使用/不需要service_acct_A,因此proj_a_client = storage.Client.from_service_account_json(service_acct_A.json) 是多余的。

关于python - 如何在Python中将一个项目的存储桶中的数据加载到另一个项目的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50751413/

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