BigQuery加载Parquet错误-Parquet中字段INT32的类型与架构中的double类型不兼容

时间:2019-01-16 07:39:09

标签: google-bigquery

我正在尝试将镶木地板文件列表加载到BigQuery表中,但出现错误:

bq --location=EU load --source_format=PARQUET project:Input.k_2017_11_new "gs://my_bucket/2017_11/11/*.parquet"

正在等待bqjob_r557b5eb5986df8a0_0000016855915d09_1 ...(34s)当前状态:完成

  

加载操作中的BigQuery错误:错误处理作业   'project:bqjob_r557b5eb5986df8a0_0000016855915d09_1':时出错   读取数据,错误消息:字段的类型不兼容   'data.list.element.p':Parquet中的INT32与架构中的double

我实际上不需要引起错误的字段,但找不到跳过此列的方法。

有没有解决这个问题的方法?

我尝试用json文件指定架构,并将此字段强制为FLOAT或INT64,STRING,但到目前为止没有任何效果。

2 个答案:

答案 0 :(得分:0)

我看到您正在使用cloudShell从实木复合地板加载到BigQuery。尝试使用JSON编写模式文件,将其复制或上传到您的cloudShell实例中,然后在提供SOURCE-TO-PATH参数后调用该文件:

bq --location=EU load --source_format=PARQUET project:Input.k_2017_11_new "gs://my_bucket/2017_11/11/*.parquet" ./mySchema.json

答案 1 :(得分:0)

在使用python时,我遇到了类似的问题,在尝试写入bq时创建了另外一列。

LoadJobConfig“忽略未知值”参数解决了我的问题,可以在command-line中以--ignore_unknown_values的形式传递