tao meng created HUDI-1817:
------------------------------
Summary: when query incr view of hudi table by using spark-sql.
the result is wrong
Key: HUDI-1817
URL: https://issues.apache.org/jira/browse/HUDI-1817
Project: Apache Hudi
Issue Type: Bug
Components: Hive Integration
Affects Versions: 0.8.0
Environment: spark2.4.5 hive 3.1.1 hadoop 3.1.1
Reporter: tao meng
Fix For: 0.9.0
create hudi table (mor or cow)
val base_data = spark.read.parquet("/tmp/tb_base")
val upsert_data = spark.read.parquet("/tmp/tb_upsert")
base_data.write.format("hudi").option(TABLE_TYPE_OPT_KEY,
MOR_TABLE_TYPE_OPT_VAL).option(PRECOMBINE_FIELD_OPT_KEY,
"col2").option(RECORDKEY_FIELD_OPT_KEY,
"primary_key").option(PARTITIONPATH_FIELD_OPT_KEY,
"col0").option(KEYGENERATOR_CLASS_OPT_KEY,
"org.apache.hudi.keygen.SimpleKeyGenerator").option(OPERATION_OPT_KEY,
"bulk_insert").option(HIVE_SYNC_ENABLED_OPT_KEY,
"true").option(HIVE_PARTITION_FIELDS_OPT_KEY,
"col0").option(HIVE_PARTITION_EXTRACTOR_CLASS_OPT_KEY,
"org.apache.hudi.hive.MultiPartKeysValueExtractor").option(HIVE_DATABASE_OPT_KEY,
"testdb").option(HIVE_TABLE_OPT_KEY,
"tb_test_mor_par").option(HIVE_USE_JDBC_OPT_KEY,
"false").option("hoodie.bulkinsert.shuffle.parallelism",
4).option("hoodie.insert.shuffle.parallelism",
4).option("hoodie.upsert.shuffle.parallelism",
4).option("hoodie.delete.shuffle.parallelism",
4).option("hoodie.datasource.write.hive_style_partitioning",
"true").option(TABLE_NAME,
"tb_test_mor_par").mode(Overwrite).save(s"/tmp/testdb/tb_test_mor_par")
upsert_data.write.format("hudi").option(TABLE_TYPE_OPT_KEY,
MOR_TABLE_TYPE_OPT_VAL).option(PRECOMBINE_FIELD_OPT_KEY,
"col2").option(RECORDKEY_FIELD_OPT_KEY,
"primary_key").option(PARTITIONPATH_FIELD_OPT_KEY,
"col0").option(KEYGENERATOR_CLASS_OPT_KEY,
"org.apache.hudi.keygen.SimpleKeyGenerator").option(OPERATION_OPT_KEY,
"upsert").option(HIVE_SYNC_ENABLED_OPT_KEY,
"true").option(HIVE_PARTITION_FIELDS_OPT_KEY,
"col0").option(HIVE_PARTITION_EXTRACTOR_CLASS_OPT_KEY,
"org.apache.hudi.hive.MultiPartKeysValueExtractor").option(HIVE_DATABASE_OPT_KEY,
"testdb").option(HIVE_TABLE_OPT_KEY,
"tb_test_mor_par").option(HIVE_USE_JDBC_OPT_KEY,
"false").option("hoodie.bulkinsert.shuffle.parallelism",
4).option("hoodie.insert.shuffle.parallelism",
4).option("hoodie.upsert.shuffle.parallelism",
4).option("hoodie.delete.shuffle.parallelism",
4).option("hoodie.datasource.write.hive_style_partitioning",
"true").option(TABLE_NAME,
"tb_test_mor_par").mode(Append).save(s"/tmp/testdb/tb_test_mor_par")
query incr view by sparksql:
set hoodie.tb_test_mor_par.consume.mode=INCREMENTAL;
set hoodie.tb_test_mor_par.consume.start.timestamp=20210420145330;
set hoodie.tb_test_mor_par.consume.max.commits=3;
select _hoodie_commit_time,primary_key,col0,col1,col2,col3,col4,col5,col6,col7
from testdb.tb_test_mor_par_rt where _hoodie_commit_time > '20210420145330'
order by primary_key;
+-------------------+-----------+----+----+----------------+----+
|_hoodie_commit_time|primary_key|col0|col1|col6 |col7|
+-------------------+-----------+----+----+----------------+----+
|20210420155738 |20 |77 |sC |1587887604000000|739 |
|20210420155738 |21 |66 |ps |1609790497000000|61 |
|20210420155738 |22 |47 |1P |1584600429000000|835 |
|20210420155738 |23 |36 |5K |1607634808000000|538 |
|20210420155738 |24 |1 |BA |1606857113000000|775 |
|20210420155738 |24 |101 |BA |1606857113000000|775 |
|20210420155738 |24 |100 |BA |1606857113000000|775 |
|20210420155738 |24 |102 |BA |1606857113000000|775 |
+-------------------+-----------+----+----+----------------+----+
the primary_key is repeated.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)