[ 
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)

Reply via email to