【问题标题】:BigQuery load_table_from_storage won't recognize uriBigQuery load_table_from_storage 无法识别 uri
【发布时间】:2016-12-21 21:36:58
【问题描述】:

我在尝试从谷歌云存储加载表时遇到以下错误: BadRequest: 400 加载配置必须指定至少一个源 URI (POST https://www.googleapis.com/bigquery/v2/projects/fansidata/jobs)

同时我的 uri 是有效的(即:我可以在 gcs 网络应用程序中看到它)

uris = ['gs://my-bucket-name/datastore_backup_analytics_2016_12_21_2_User/1569751766512529035929A5AA9742/output-0']

job_name = 'Load_User' 
destinationTable = dataset.table('Transfer')
job = bigquery_client.load_table_from_storage(job_name, destinationTable, uris)            
job.begin()

【问题讨论】:

    标签: python google-bigquery google-cloud-storage


    【解决方案1】:

    我可能是错的,但看起来 Python API 中的 load_table_from_storage 需要一个字符串作为第三个参数,而不是一个列表。如果要匹配多个文件,可以在末尾使用*。例如,

    uri = 'gs://my-bucket-name/datastore_backup_analytics_2016_12_21_2_User/1569751766512529035929A5AA9742/output-*']
    
    job_name = 'Load_User' 
    destinationTable = dataset.table('Transfer')
    job = bigquery_client.load_table_from_storage(job_name, destinationTable, uri)            
    job.begin()
    

    【讨论】:

    【解决方案2】:

    Client.load_table_from_storage 采用 一个或多个 源 URI(这就是 *soure_uris 在 python 中的含义)。例如:

    job = client.load_table_from_storage(
        'load-job-123', my_table_object,
        'gs://my-bucket-name/table_one',
        'gs://my-bucket-name/table_two')
    

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 2019-07-17
      • 1970-01-01
      相关资源
      最近更新 更多