Rahul created HIVE-12729:
----------------------------
Summary: In Hive 1.2 - current_date() comparison results in Error
Unsupported conversion from type: interval_day_time
Key: HIVE-12729
URL: https://issues.apache.org/jira/browse/HIVE-12729
Project: Hive
Issue Type: Bug
Components: Hive
Affects Versions: 1.2.0
Reporter: Rahul
I am using current_date() in my query where clause along with table column of
type date for comparison using artihmatic operator "-" (minus) and "<" / ">"
operators - for example:
SELECT DISTINCT customerid FROM Customer_date WHERE
((Customer_date.my_date_mmdyyyy - CURRENT_DATE()) >= 7)
It results in error as:
====================================================
ERROR : Vertex failed, vertexName=Map 1,
vertexId=vertex_1449057948397_0330_1_00, diagnostics=[Task failed,
taskId=task_1449057948397_0330_1_00_000000, diagnostics=[TaskAttempt 0 failed,
info=[Error: Failure while running task:java.lang.RuntimeException:
java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException:
Hive Runtime Error while processing row
{"customerid":1,"my_date_mmdyyyy":"1982-01-01","my_date_ddmmyy":"1982-01-01","my_date_ddmmyyyy":"1982-01-01","my_date_mdyyyy":"1982-01-01","my_date_mdyyyyhh":"1982-01-01
00:00:00","my_date_mdyyyyhh24":"1982-01-01 00:00:00"}
at
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:171)
at
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:137)
at
org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:344)
at
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:179)
at
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:171)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:171)
at
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:167)
at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException:
org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while
processing row
{"customerid":1,"my_date_mmdyyyy":"1982-01-01","my_date_ddmmyy":"1982-01-01","my_date_ddmmyyyy":"1982-01-01","my_date_mdyyyy":"1982-01-01","my_date_mdyyyyhh":"1982-01-01
00:00:00","my_date_mdyyyyhh24":"1982-01-01 00:00:00"}
at
org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:91)
at
org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:68)
at
org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:310)
at
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:148)
... 14 more
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error
while processing row
{"customerid":1,"my_date_mmdyyyy":"1982-01-01","my_date_ddmmyy":"1982-01-01","my_date_ddmmyyyy":"1982-01-01","my_date_mdyyyy":"1982-01-01","my_date_mdyyyyhh":"1982-01-01
00:00:00","my_date_mdyyyyhh24":"1982-01-01 00:00:00"}
at
org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:545)
at
org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:83)
... 17 more
Caused by: java.lang.RuntimeException: Hive 2 Internal error: unsupported
conversion from type: interval_day_time
at
org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.getDouble(PrimitiveObjectInspectorUtils.java:779)
at
org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorConverter$DoubleConverter.convert(PrimitiveObjectInspectorConverter.java:240)
=====================================================
As a alternative I can use query as:
SELECT DISTINCT customerid FROM Customer_date WHERE
(current_date() - my_date_mmdyyyy ) = interval '0 0:0:0' day to second
I cant use this query all the time with interval type attached for the
comparison. Is there any way original query can be fixed to serve the results
without specifying Interval:
Original query:
SELECT DISTINCT customerid FROM Customer_date WHERE
((Customer_date.my_date_mmdyyyy - CURRENT_DATE()) >= 7)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)