0

我的电脑上有一个 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

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

4

2 回答 2

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"
于 2020-03-27T15:41:37.400 回答
0

我不确定你为什么使用

--apilog=./logs

我在bq 加载文档中没有找到这个,请澄清。

基于此,也许bq load命令可能是问题所在,您可以尝试以下操作:

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

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

于 2020-03-27T14:11:20.510 回答