[ https://issues.apache.org/jira/browse/HIVE-25298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sankar Hariappan updated HIVE-25298: ------------------------------------ Fix Version/s: 4.0.0 > LAG function get java.lang.ClassCastException: > org.apache.hadoop.hive.common.type.HiveDecimal cannot be cast to > org.apache.hadoop.hive.serde2.io.HiveDecimalWritable > -------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: HIVE-25298 > URL: https://issues.apache.org/jira/browse/HIVE-25298 > Project: Hive > Issue Type: Bug > Components: Hive > Affects Versions: 3.1.2 > Environment: Hive 3.1 > Reporter: wenjun ma > Priority: Major > Fix For: 4.0.0 > > > When we try to apply the LAG function with aggregation function (MAX), we got > ava.lang.ClassCastException: org.apache.hadoop.hive.common.type.HiveDecimal > cannot be cast to org.apache.hadoop.hive.serde2.io.HiveDecimalWritable. > reproduce steps: > # create table: > create table tbl1 (ACCT_NM string, ACCT_BAL decimal(15,2)) partitioned by > (DL_DATA_DT string) > # insert sample data:insert into tbl1 values ('acct1', 1000.00, > '2020-01-01'); > insert into tbl1 values ('acct1', 800.00, '2020-01-02'); > ## Run folowing SQL: > {code:java} > select > test.ACCT_NM, > test.DL_DATA_DT, > test.MAX_ACCT_BAL, > LAG(test.MAX_ACCT_BAL,1,0) OVER (PARTITION BY test.ACCT_NM ORDER BY > test.DL_DATA_DT) AS PREV_USED_AMT > from ( > select > tbl1.ACCT_NM as ACCT_NM, > tbl1.DL_DATA_DT as DL_DATA_DT, > max(tbl1.ACCT_BAL) as MAX_ACCT_BAL > from tbl1 > group by tbl1.ACCT_NM, tbl1.DL_DATA_DT > ) test; > {code} > Full Stack: > ERROR : FAILED: Execution Error, return code 2 from > org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Reducer > 2, vertexId=vertex_1624984332939_0003_5_01, diagnostics=[Task failed, > taskId=task_1624984332939_0003_5_01_000021, diagnostics=[TaskAttempt 0 > failed, info=[Error: Error while running task ( failure ) : > attempt_1624984332939_0003_5_01_000021_0:java.lang.RuntimeException: > java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: > Hive Runtime Error while processing row > at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:296) > at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:250) > at > org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:374) > at > org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:73) > at > org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:61) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:422) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730) > at > org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:61) > at > org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:37) > at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36) > at > org.apache.hadoop.hive.llap.daemon.impl.StatsRecordingThreadPool$WrappedCallable.call(StatsRecordingThreadPool.java:118) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.RuntimeException: > org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while > processing row > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource.pushRecord(ReduceRecordSource.java:304) > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordProcessor.run(ReduceRecordProcessor.java:318) > at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:267) > ... 15 more > Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime > Error while processing row > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource$GroupIterator.next(ReduceRecordSource.java:378) > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource.pushRecord(ReduceRecordSource.java:294) > ... 17 more > Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: > java.lang.ClassCastException: org.apache.hadoop.hive.common.type.HiveDecimal > cannot be cast to org.apache.hadoop.hive.serde2.io.HiveDecimalWritable > at > org.apache.hadoop.hive.ql.exec.GroupByOperator.process(GroupByOperator.java:795) > at > org.apache.hadoop.hive.ql.exec.tez.ReduceRecordSource$GroupIterator.next(ReduceRecordSource.java:363) > ... 18 more > Caused by: java.lang.ClassCastException: > org.apache.hadoop.hive.common.type.HiveDecimal cannot be cast to > org.apache.hadoop.hive.serde2.io.HiveDecimalWritable > at > org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableHiveDecimalObjectInspector.copyObject(WritableHiveDecimalObjectInspector.java:54) > at > org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.copyToStandardObject(ObjectInspectorUtils.java:432) > at > org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.copyToStandardObject(ObjectInspectorUtils.java:372) > at > org.apache.hadoop.hive.ql.udf.generic.GenericUDAFLeadLag$GenericUDAFLeadLagEvaluator.iterate(GenericUDAFLeadLag.java:156) > at > org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.aggregate(GenericUDAFEvaluator.java:214) > at > org.apache.hadoop.hive.ql.udf.ptf.WindowingTableFunction.processRow(WindowingTableFunction.java:407) > at > org.apache.hadoop.hive.ql.exec.PTFOperator$PTFInvocation.processRow(PTFOperator.java:325) > at org.apache.hadoop.hive.ql.exec.PTFOperator.process(PTFOperator.java:139) > at org.apache.hadoop.hive.ql.exec.Operator.baseForward(Operator.java:994) > at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:940) > at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:927) > at > org.apache.hadoop.hive.ql.exec.GroupByOperator.forward(GroupByOperator.java:1050) > at > org.apache.hadoop.hive.ql.exec.GroupByOperator.processAggr(GroupByOperator.java:850) > at > org.apache.hadoop.hive.ql.exec.GroupByOperator.processKey(GroupByOperator.java:724) > at > org.apache.hadoop.hive.ql.exec.GroupByOperator.process(GroupByOperator.java:790) > ... 19 more -- This message was sent by Atlassian Jira (v8.3.4#803005)