trying to run the following query:

insert overwrite table imp_test3 partition(ds="20090513") select
d["query_string"] from imp where imp.ds="20090513" and imp.hour="00";

causes all of the tasks in step 2 to fail with:

java.lang.RuntimeException: Map operator initialization failed
        at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:134)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:47)

        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:227)
        at 
org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2198)
Caused by: java.lang.NullPointerException
        at 
org.apache.hadoop.hive.ql.exec.MapOperator.initObjectInspector(MapOperator.java:175)

        at 
org.apache.hadoop.hive.ql.exec.MapOperator.initializeOp(MapOperator.java:203)
        at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:264)
        at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:94)

        ... 3 more


imp_test3 is defined as:
create table imp_test3(qs string)
partitioned by (ds string)
stored as sequencefile
;

If I get rid of the partition in the destination table, and use:
insert overwrite table imp_test3 select d["query_string"] from imp where
imp.ds="20090513" and imp.hour="00";

then everything seems to work....

I also tried adding another partition to the destination table (hour), to
match the input... but, still no go...

imp is defined as:
CREATE TABLE imp (d MAP<STRING,STRING>)
 partitioned by (ds string, hour string)
 ROW FORMAT DELIMITED
 FIELDS TERMINATED BY '\t'
 COLLECTION ITEMS TERMINATED BY '\1'
 MAP KEYS TERMINATED BY '\2'
 STORED AS TEXTFILE
;

thanks for the help.

Reply via email to