在 EMR 6.3.1 中使用 Hive on Spark Engine 查询 Hudi table 时获取重复记录

Getting duplicate records while querying Hudi table using Hive on Spark Engine in EMR 6.3.1

我正在使用 Hive 查询 Hudi table,它在 EMR 集群 6.3.1

中的 Spark 引擎上 运行ning

Hudi版本为0.7

我插入了一些记录,然后使用 Hudi Merge on Read 更新了相同的记录。这将在更新后的 data/records.

的同一分区下内部创建新文件

现在,当我使用 Spark SQL 查询相同的 table 时,它工作正常并且没有 return 任何重复项。基本上,它只接受最新的 records/parquet 文件进行处理。当我使用 Tez 作为 Hive 的底层引擎时,它也能正常工作。

但是,当我 运行 使用 Spark 作为底层执行引擎在 Hive 提示符下执行相同的查询时,它 return 收集所有记录并且不过滤以前的镶木地板文件。

已尝试设置 属性 spark.sql.hive.convertMetastoreParquet=false,但仍然无效。

请帮忙。

这是 Hudi 中的一个已知问题。

仍然,使用下面的 属性,我能够删除 RO(读取优化)Hudi tables 中的重复项。该问题在 RT table(实时)中仍然存在。

set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat