【问题标题】:BigQuery CLI: load commands stays pendingBigQuery CLI:加载命令处于待处理状态
【发布时间】:2020-03-27 23:41:37
【问题描述】:

我的电脑上有一个 csv 文件。我想将此 CSV 文件加载到 BigQuery 表中。 我正在从终端使用以下命令:

bq load --apilog=./logs --field_delimiter=$(printf ';') --skip_leading_rows=1 --autodetect dataset1.table1 mycsvfile.csv myschema.json

我的终端中的命令没有给出任何输出。在 GCP 界面中,我看到没有创建任何作业,这让我认为请求甚至没有到达 GCP。 在日志文件(来自 --apilog 参数)中,我获得了有关正在发出的请求的信息,并以以下结尾:

INFO:googleapiclient.discovery:URL being requested: POST https://bigquery.googleapis.com/upload/bigquery/v2/projects/myproject/jobs?uploadType=resumable&alt=json

就是这样。不管我等多久,什么都没有发生。

【问题讨论】:

    标签: google-bigquery bq


    【解决方案1】:

    您正在将 --autodetect 与 myschema.json 混合,类似以下内容应该可以工作:

    bq load --apilog=logs \
    --source_format=CSV \
    --field_delimiter=';' \
    --skip_leading_rows=1 \
    --autodetect \
    dataset.table \
    mycsvfile.csv
    

    如果您仍然遇到问题,请发布 apilog 的内容,您共享的行似乎没有错误。应该不止一行,通常在一个json结构中包含错误,例如:

    "reason": "invalid",
          "message": "Provided Schema does not match Table project:dataset.table. Field users is missing in new schema"
    

    【讨论】:

      【解决方案2】:

      我不知道你为什么要使用

      --apilog=./logs

      我在bq load documentation 中没有找到这个,请澄清。

      基于此,可能 bq load 命令可能是问题所在,您可以尝试以下方法:

      bq load \
      --autodetect  \
      --source_format=CSV \
      --skip_leading_rows= 1  \
      --field_delimiter=';'
      dataset1.table1 \
      gs://mybucket/mycsvfile.csv \
      ./myschema.json
      

      如果失败,请检查您的job list 以创建作业,然后使用bq show 查看有关该作业的信息,在那里您应该会找到一个错误消息,可以帮助您确定问题的原因.

      【讨论】:

        猜你喜欢
        • 2014-06-21
        • 2018-03-31
        • 1970-01-01
        • 2021-10-12
        • 2014-09-20
        • 1970-01-01
        • 2018-11-19
        • 2019-11-09
        • 2019-04-28
        相关资源
        最近更新 更多