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)

Reply via email to