You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "pengzhiwei (Jira)" <ji...@apache.org> on 2021/06/21 14:14:00 UTC
[jira] [Resolved] (HUDI-2033) ClassCastException Throw When
PreCombineField Is String Type
[ https://issues.apache.org/jira/browse/HUDI-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
pengzhiwei resolved HUDI-2033.
------------------------------
Resolution: Fixed
> ClassCastException Throw When PreCombineField Is String Type
> ------------------------------------------------------------
>
> Key: HUDI-2033
> URL: https://issues.apache.org/jira/browse/HUDI-2033
> Project: Apache Hudi
> Issue Type: Bug
> Components: Spark Integration
> Reporter: pengzhiwei
> Assignee: pengzhiwei
> Priority: Critical
> Fix For: 0.9.0
>
>
> When the preCombineField is string type:
>
> {code:java}
> create table h0 (
> id int,
> name string,
> c string
> ) using hudi
> options(
> primaryKey = 'id',
> preCombineField = 'c'
> );
> {code}
>
>
> the follow exception throw out when execute merge into statement.
>
> {code:java}
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to org.apache.avro.util.Utf8Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to org.apache.avro.util.Utf8 at org.apache.avro.util.Utf8.compareTo(Utf8.java:28) at org.apache.hudi.common.model.DefaultHoodieRecordPayload.needUpdatingPersistedRecord(DefaultHoodieRecordPayload.java:105) at org.apache.spark.sql.hudi.command.payload.ExpressionPayload.protected$needUpdatingPersistedRecord(ExpressionPayload.scala:98) at org.apache.spark.sql.hudi.command.payload.ExpressionPayload$$anonfun$combineAndGetUpdateValue$4.apply(ExpressionPayload.scala:98) at org.apache.spark.sql.hudi.command.payload.ExpressionPayload$$anonfun$combineAndGetUpdateValue$4.apply(ExpressionPayload.scala:88)
> {code}
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)