Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python BigQuery表从一个项目复制到另一个项目(这些使用另一个凭据)_Python_Google Bigquery - Fatal编程技术网

Python BigQuery表从一个项目复制到另一个项目(这些使用另一个凭据)

Python BigQuery表从一个项目复制到另一个项目(这些使用另一个凭据),python,google-bigquery,Python,Google Bigquery,我想将表从SourceProject复制到DestProject。 SourceProject归服务用户所有,DestProject归我所有。 我已从服务用户收到访问SourceProject的凭据。 如何将表从SourceProject复制到DestProject 我正在检查这个问题。 我试过这个密码 source_client = bigquery.Client( credentials=user_credentials, project=source_project, )

我想将表从SourceProject复制到DestProject。 SourceProject归服务用户所有,DestProject归我所有。 我已从服务用户收到访问SourceProject的凭据。 如何将表从SourceProject复制到DestProject

我正在检查这个问题。

我试过这个密码

source_client = bigquery.Client(
    credentials=user_credentials,
    project=source_project,
)

dest_client = bigquery.Client(
    credentials=my_credentials,
    project=dest_project,
)

source_dataset = source_client.dataset("source_dataset", project="source_project")
source_table_ref = source_dataset.table("source_table")

dest_dataset = dest_client.dataset("dest_dataset", project="dest_project")
dest_table_ref = dest_dataset.table("dest_table")

job = dest_client.copy_table(
    source_table_ref,
    dest_table_ref,
)  # API request

job.result()
但它不起作用。(是的,当然) 返回此消息

google.api_core.exceptions.Forbidden: 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/dest_project/jobs: Access Denied: Dataset source_project:source_dataset: User does not have bigquery.tables.create permission for dataset source_project:source_dataset.
如果你能告诉我一个好方法或替代方法,那会很有帮助的。
感谢阅读。

您的代码是正确的,您设置了所有必需的信息,如项目、数据集和表

正如我们在评论中所讨论的,此方法的问题在于您使用了错误的凭据。为了在BigQuery中创建新表,您需要在给定的数据集中具有
BigQuery.tables.create
权限


如果您需要任何进一步的支持,请让我知道

您检查过用于编写新表的用户是否具有此权限吗?谢谢。我对权限了解不够。我尝试过检查。您检查过了吗?请让我知道我很抱歉迟了回复。权限没有按照您的想法设置。如果我设置了表格查看权限,这似乎是可行的,但在这种情况下,由于用户的担心,我无法采用这种方法。因此,我更改了方法,下载表格内容并将其作为数据框上载到我的bigquery。谢谢。非常感谢!当我在测试数据集上设置bigquery.tables.create权限并读取凭据时,我继续收到与此意图相反的错误,因此我可能会询问有关此问题的另一个问题。此时再次感谢您。如果您想继续此解决方案,您只需更新问题,我将尽力帮助您