【发布时间】:2022-07-09 21:02:22
【问题描述】:
我的 Hudi CDC 的 AWS Glue 作业在作为预组合字段的列上失败(请参阅下面的错误消息)。我已验证此列上没有 NULL 值(它有一个 AFTER UPDATE 触发器和一个默认值 NOW() 集)。当我使用 spark 查询 parquet 文件时,唯一显示 NULL 的记录是标记有 DELETE 操作 ('op') 的记录。据我了解,Hudi 仅在 DELETE 操作时传输 PRIMARY KEY,其他什么都没有。
为什么 Hudi 在 DELETE 操作中使用 NULL 值预组合失败?我怎样才能解决这个问题?我错过了一个选项还是什么?非常感谢任何帮助。
错误信息:
2022-06-06 19:05:13,633 错误 [Executor task launch worker for task 阶段 46.0 (TID 264) 中的 2.0] executor.Executor (Logging.scala:logError(94)):阶段 46.0 中的任务 2.0 中的异常(TID 264) org.apache.hudi.exception.HoodieException: 的值 last_modified_date 不能为空
Hudi 选项:
options = {
"hoodie_overrides": {
"hoodie.datasource.write.recordkey.field": "id",
"hoodie.datasource.write.precombine.field": "last_modified_date",
"hoodie.datasource.hive_sync.partition_extractor_class": "org.apache.hudi.hive.NonPartitionedExtractor",
"hoodie.datasource.write.keygenerator.class": "org.apache.hudi.keygen.NonpartitionedKeyGenerator",
"hoodie.datasource.hive_sync.support_timestamp": "true",
}
}
parquet 文件的 Spark 查询:
【问题讨论】:
标签: apache-spark aws-glue cdc apache-hudi hoodie