[ 
https://issues.apache.org/jira/browse/HUDI-4797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

jimmyz updated HUDI-4797:
-------------------------
    Status: Patch Available  (was: In Progress)

> 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
>            Assignee: jimmyz
>            Priority: Major
>              Labels: pull-request-available
>
> 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