当使用"bq Load“命令将ORC文件加载到现有的BQ表时,我观察到一旦加载了数据,表模式(表的列名)也会发生变化。
要求是将ORC从GCS加载到BigQuery中的临时表。这一步我试图使用"bq load“命令来实现,但是它改变了表的现有模式。
示例代码:
bq load --replace --source_format=ORC表gs:// some_dateset.some_table_staging _bucket/some_table/*
我希望保留ORC表中的实际列名,即使在我将BigQuery文件加载到表中之后也是如此。但是到目前为止,表的列名根据ORC文件模式进行了更改
发布于 2019-08-14 22:34:39
我用AVRO和ORC文件测试了你在我的数据上提供的bq load命令。
--replace or replace=true
标志应为erase all data, and is doing so。
因此,实际上正在发生的事情是,所有的表和模式都被擦除并替换为文件中的新表和模式。
--noreplace or --replace=false
仅当您的ORC文件架构与表中已存在的架构相同时,此标志才有效。
--schema_update_option=ALLOW_FIELD_ADDITION
最后,在你的用例中,你只需要使用:
bq load --schema_update_option=ALLOW_FIELD_ADDITION --source_format=ORC <project_id>:<schema>.<table> gs://<bucket_name>/<file_name>
https://stackoverflow.com/questions/56752497
复制相似问题