使用" bq load"命令将orc文件加载到现有的BQ表中时,我观察到一旦加载数据,表格架(表的列名称(也会更改。
要求是将ORC文件从GCS加载到BigQuery的登台表。此步骤IM试图使用" BQ Load"命令来实现,但它改变了表的现有模式。
示例代码:
bq load -replace -source_format = orc some_dateset.some_table_stable_staging gs://some_bucket/some_table/*
即使将ORC文件加载到表中,我也希望将实际的列名保留在BigQuery表中。但是截至目前,该表的列名根据ORC文件架构
我确实在我的数据上提供了AVRO和orc文件的测试BQ加载命令。
--replace or replace=true
标志有望删除所有数据,并且正在这样做。
因此,从字面上发生的事情,所有的表格和模式都将被删除并用文件中的新架构代替。如果要将数据附加到表,则需要使用
--noreplace or --replace=false
仅当您的兽人文件架构与表中已经存在的相同时,此标志才能正常工作。如果您的数据模式与表中定义的架构有所不同,则需要使用schema_update_option:
--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>