Google BigQuery Spark 连接器:如何在追加时忽略未知值

Google BigQuery Spark Connector: How to ignore unknown values on append

我们使用 Google BigQuery Spark 连接器将存储在 Parquet 文件中的数据导入 BigQuery。我们使用自定义工具生成了 BigQuery 所需的架构文件,并在我们的导入代码 (Scala) 中引用了该文件。

但是,我们的数据并没有真正遵循固定且定义明确的架构,在某些情况下,可能会向单个数据集添加额外的列。这就是为什么在使用命令行工具 bq 试验 BigQuery 时,我们几乎总是使用 --ignore_unknown_values,否则许多导入都会失败。

遗憾的是,我们无法在 BigQuery Spark Connector com.google.cloud.bigdataoss:bigquery-connector:0.10.1-hadoop2 中找到等效的配置选项。它存在吗?

不幸的是,这目前还没有通过连接器进行检测,即使我们现在添加它,正式版本也需要几周时间才能部署到所有地方。我 filed an issue 在 github 存储库中跟踪此功能请求。

与此同时,如果您想构建自己的连接器版本,则可以在 BigQueryRecordWriter if you're using the older "direct output format", or BigQueryHelper 中显式编辑 JobConfigurationLoad 设置(如果您使用的是较新的 "indirect output format"),以及添加一行:

loadConfig.setIgnoreUnknownValues(true);