如何解决BigQueryCreateExternalTableOperator的CsvOptions格式不匹配报错?
解决BigQuery外部表创建报错:CsvOptions can only be specified if storage format is CSV
错误分析
报错核心原因:当存储格式指定为PARQUET时,BigQuery不允许传入任何CSV相关配置。但在Airflow 2.5.1版本的BigQueryCreateExternalTableOperator中,即使你未显式设置CSV参数,Operator仍会默认传递空的CsvOptions给BigQuery API,触发格式不匹配的400错误。
修复方案
在Operator中显式添加csv_options=None参数,覆盖默认的空CsvOptions设置,确保只传递PARQUET格式所需的配置:
create_imp_external_table = BigQueryCreateExternalTableOperator( task_id=f"create_imp_external_table", bucket='my-bucket', source_objects=["/data/userdata1.parquet"], destination_project_dataset_table=f"my-project.my_dataset.parquet_table", source_format='PARQUET', csv_options=None # 显式禁用CSV相关配置 )
验证说明
添加该参数后,Operator将不再向BigQuery API传递任何CSV相关选项,完全适配PARQUET格式的外部表创建要求,即可成功执行任务。
内容的提问来源于stack exchange,提问作者GURUDAS K S
相关产品推荐
相关产品推荐

