jimmyz created HUDI-4797:
----------------------------

             Summary: Merge Into Table Failed when Source Table Has Different 
Column Order
                 Key: HUDI-4797
                 URL: https://issues.apache.org/jira/browse/HUDI-4797
             Project: Apache Hudi
          Issue Type: Bug
          Components: spark-sql
            Reporter: jimmyz


h2. reproduce steps:
1. create table t1 (id int, data string) using hudi tblproperties (type ='mor', 
primaryKey = 'id')
2. merge into t1 as t0 using (select 'a1' as data, 1 as id) as s0 on s0.id = 
t0.id when not matched and s0.id % 2 = 1 then insert *

h2. exception:

{code:java}
Caused by: java.lang.ClassCastException: 
org.apache.spark.unsafe.types.UTF8String cannot be cast to java.lang.Integer
        at 
org.apache.hudi.sql.payload.ExpressionPayloadEvaluator_09f7a7b7_0021_4d57_a806_f0a8089b35ed.eval(Unknown
 Source)
        at 
org.apache.spark.sql.hudi.command.payload.ExpressionPayload.org$apache$spark$sql$hudi$command$payload$ExpressionPayload$$evaluate(ExpressionPayload.scala:244)
        ... 18 more
{code}

h2. root cause:
Spark join result in different column order, join key will be promoted to head.
When it came to 'not match' condition, The position of the id in the condition 
is different from the position in the actual record





--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to