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);
我们使用 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);