我正在尝试将镶木地板文件列表加载到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,但到目前为止没有任何效果。
答案 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的形式传递