Xuefu Zhang created HIVE-6984:
---------------------------------

             Summary: Analyzing partitioned table with NULL values for the 
partition column failed with NPE
                 Key: HIVE-6984
                 URL: https://issues.apache.org/jira/browse/HIVE-6984
             Project: Hive
          Issue Type: Bug
          Components: Statistics
    Affects Versions: 0.14.0
            Reporter: Xuefu Zhang


The following describes how to produce the bug:
{code}
hive> desc test2;
name                    string                                      
age                     int                                         

hive> select * from test2;
Query ID = xzhang_20140428154343_bb921bce-7282-47b6-bfe8-669c7edaabe7
OK
6666666666666666666     NULL
5555555555555555555     NULL
tom     15
john    NULL
mayr    40
        30
        NULL

hive> create table test3(name string) partitioned by (age int);

hive> from test2 insert overwrite table test3 partition(age) select test2.name, 
test2.age;
Loading data to table default.test3 partition (age=null)
        Loading partition {age=40}
        Loading partition {age=__HIVE_DEFAULT_PARTITION__}
        Loading partition {age=30}
        Loading partition {age=15}
Partition default.test3{age=15} stats: [numFiles=1, numRows=1, totalSize=4, 
rawDataSize=3]
Partition default.test3{age=30} stats: [numFiles=1, numRows=1, totalSize=1, 
rawDataSize=0]
Partition default.test3{age=40} stats: [numFiles=1, numRows=1, totalSize=5, 
rawDataSize=4]
Partition default.test3{age=__HIVE_DEFAULT_PARTITION__} stats: [numFiles=1, 
numRows=4, totalSize=46, rawDataSize=42]

hive> analyze table test3 partition(age) compute statistics;

Task with the most failures(4): 
-----
Task ID:
  task_201403041834_0063_m_000000

-----
Diagnostic Messages for this Task:
java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: 
Hive Runtime Error while processing row 
{"name":"6666666666666666666","age":null,"raw__data__size":19}
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:195)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
        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:1499)
        at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error 
while processing row 
{"name":"6666666666666666666","age":null,"raw__data__size":19}
        at 
org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:549)
        at org.apache.hado

FAILED: Execution Error, return code 2 from 
org.apache.hadoop.hive.ql.exec.mr.MapRedTask
{code}

The following is the stack trace in mapper log:
{code}
2014-04-28 15:39:25,073 FATAL org.apache.hadoop.hive.ql.exec.mr.ExecMapper: 
org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while 
processing row {"name":"6666666666666666666","age":null,"raw__data__size":19}
        at 
org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:549)
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:177)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
        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:1499)
        at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: java.lang.NullPointerException
        at 
org.apache.hadoop.hive.ql.exec.TableScanOperator.gatherStats(TableScanOperator.java:149)
        at 
org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:90)
        at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:796)
        at 
org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:539)
        ... 9 more
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to