我有一个DAG气流任务,它进入一个特定的桶,并从内部的所有文件一起创建一个外部表。当我试图在bigquery中查询外部表时,我得到了错误(CSV表引用列位置19,但从位置325开始的行只包含19列。我已经看过它提到的特定文件,第一行(和其他)的最后一个字段是空白的,如果它什么都没有,它应该是0,或者如果有一些东西,它应该是一个数字。我该如何着手解决这个问题?
文件中的记录示例:
我已经滚动了,所以你可以看到最后一列(第19列是总件)所有其他记录在这个领域有一个数字,甚至是0。第一个记录什么都没有,还有其他一些记录。我可以想象这可能会再次发生在其他文件太,所以我不能手动只是修复它们。
create_external_table = BigQueryUpsertTableOperator(
task_id=f"create_external_{TABLE}_table",
dataset_id=DATASET,
project_id=INGESTION_PROJECT_ID,
table_resource={
"tableReference": {"tableId": f"{TABLE}_external"},
"externalDataConfiguration": {
"sourceFormat": "CSV",
"allow_quoted_newlines": True,
"autodetect": True,
"sourceUris": [f"gs://{ARCHIVE_BUCKET}/{DATASET}_data/*.csv"],
},
"labels": labeler.get_labels_bigquery_table_v2(
target_project=INGESTION_PROJECT_ID,
target_dataset=DATASET,
target_table=f"{TABLE}_external",
),
},
)
1条答案
按热度按时间wfveoks01#
任务“allow_jagged_rows”的选项允许在创建外部表时摄取最后一列中缺少数据的记录。或者任何表,我的新任务如下所示: