我的电脑上有一个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
就这样。不管我等多久,什么都不会发生。
您正在将--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"
我不知道你为什么要使用
-apilog=/记录
我在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查看有关该作业的信息,在那里您应该会发现一个错误消息,可以帮助您确定问题的原因。