Google bigquery 加载作业上ignoreUnknownValues选项的Google BigQuery意外行为(接收额外列时出错)

Google bigquery 加载作业上ignoreUnknownValues选项的Google BigQuery意外行为(接收额外列时出错),google-bigquery,etl,airflow,Google Bigquery,Etl,Airflow,我正在使用气流触发Google BigQuery中的加载作业。源文件由多个NDJSON文件组成 这是气流操纵器(我认为与此无关。上下文给出): 正在等待bqjob_[…]_1。。。(0s)当前状态:完成BigQuery错误 加载操作中:处理作业“[…]”时出错:提供的架构没有 与表[…]不匹配。无法添加字段(字段: 元数据\u存款\u 00\u源ID) 更新3:当我同时使用autodetect和ignore\u unknown\u值时,问题似乎发生了。如果我以schema\u字段的形式提供现有的

我正在使用气流触发Google BigQuery中的加载作业。源文件由多个NDJSON文件组成

这是气流操纵器(我认为与此无关。上下文给出):

正在等待bqjob_[…]_1。。。(0s)当前状态:完成BigQuery错误 加载操作中:处理作业“[…]”时出错:提供的架构没有 与表[…]不匹配。无法添加字段(字段: 元数据\u存款\u 00\u源ID)


更新3:当我同时使用
autodetect
ignore\u unknown\u值时,问题似乎发生了。如果我以
schema\u字段
的形式提供现有的模式,那么
忽略\u未知\u值
会像我预期的那样工作,但在文档中我并不清楚。

新列是可为空的、必需的还是必需的REPEATED@PaddyPopeye在我的源JSON文件上?我正在为输入模式使用
autodetect=True
,因此我甚至不确定这将如何应用。如果需要添加其他字段,可以使用schemaUpdateOptions[]来允许新字段。但是它不适用于自动检测,因此您需要显式地向LoadDetect提供新的模式。谢谢,但正如我在上面所写的,我希望忽略额外的字段,而不是添加这些字段。试试这个
load = GoogleCloudStorageToBigQueryOperator(
    task_id=f"load",
    bigquery_conn_id="bigquery_default",
    pool="bigquery_insert",
    destination_project_dataset_table="<HIDDEN>",
    bucket="<HIDDEN>",
    source_objects=list_files(),
    source_format="NEWLINE_DELIMITED_JSON",
    write_disposition="WRITE_APPEND",
    autodetect=True,
    ignore_unknown_values=True
)
{ 
   "configuration":{ 
      "load":{ 
         "autodetect":True,
         "createDisposition":"CREATE_IF_NEEDED",
         "destinationTable":{ 
            "projectId":"<PRIVATE>",
            "datasetId":"<PRIVATE>",
            "tableId":"<PRIVATE>"
         },
         "sourceFormat":"NEWLINE_DELIMITED_JSON",
         "sourceUris":[ 
            "<PRIVATE>"
         ],
         "writeDisposition":"WRITE_APPEND",
         "ignoreUnknownValues":True
      }
   }
}
bq load --autodetect --source_format=NEWLINE_DELIMITED_JSON --noreplace --ignore_unknown_values [MY TABLE NAME] [MY GCS PATH]