Hi David, Please do "ant clean" before running "ant -Dhadoop.version=0.18.x package"
Zheng On Fri, Jul 10, 2009 at 12:45 PM, David Lerman<[email protected]> wrote: > Thanks Zheng, > > Applying the 624 patch changes the Exception to: > > java.lang.ClassCastException: java.util.ArrayList cannot be cast to > java.util.Vector > at > org.apache.hadoop.hive.ql.exec.JoinOperator.process(JoinOperator.java:58) > at org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:189) > at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:318) > at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2198) > > Dave > > > On 7/10/09 3:17 PM, "Zheng Shao" <[email protected]> wrote: > >> Hi David, >> >> Thanks for letting us know. I will take a look now. >> >> In the meanwhile, there is a fix related to types >> https://issues.apache.org/jira/browse/HIVE-624 which might solve the >> problem. >> You might want to try it out. >> >> Zheng >> >> On Fri, Jul 10, 2009 at 11:28 AM, David Lerman<[email protected]> wrote: >>> Attempting to join three tables is consistently failing with a >>> ClassCastException using Hive trunk (r792966) and Hadoop 0.18.3. >>> >>> The three tables are defined as follows: >>> >>> create table foo (foo_id int, foo_name string, foo_a string, foo_b string, >>> foo_c string, foo_d string) row format delimited fields terminated by ',' >>> stored as textfile; >>> >>> create table bar (bar_id int, bar_0 int, foo_id int, bar_1 int, bar_name >>> string, bar_a string, bar_b string, bar_c string, bar_d string) row format >>> delimited fields terminated by ',' stored as textfile; >>> >>> create table count (bar_id int, n int) row format delimited fields >>> terminated by ',' stored as textfile; >>> >>> Each table has a single row as follows: >>> >>> foo: >>> 1,foo1,a,b,c,d >>> >>> bar: >>> 10,0,1,1,bar10,a,b,c,d >>> >>> counts: >>> 10,2 >>> >>> The failing query is: >>> >>> select foo.foo_name, bar.bar_name, n from foo join bar on foo.foo_id = >>> bar.foo_id join count on count.bar_id = bar.bar_id; >>> >>> Interestingly, the query works if you reorder the joins (select >>> foo.foo_name, bar.bar_name, n from count join bar on count.bar_id = >>> bar.bar_id join foo on foo.foo_id = bar.foo_id) or if you remove any of the >>> unused string columns from foo or even just move the unused int columns in >>> bar to the end. >>> >>> The exception is as follows: >>> >>> java.lang.ClassCastException: >>> org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableIntObjectIns >>> pector cannot be cast to >>> org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspecto >>> r >>> at >>> org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDeTypeString.serialize( >>> DynamicSerDeTypeString.java:63) >>> at >>> org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDeFieldList.serialize(D >>> ynamicSerDeFieldList.java:249) >>> at >>> org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDeStructBase.serialize( >>> DynamicSerDeStructBase.java:81) >>> at >>> org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDe.serialize(DynamicSer >>> De.java:177) >>> at >>> org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.jav >>> a:180) >>> at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:492) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.createForwardJoinObject(Co >>> mmonJoinOperator.java:290) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genObject(CommonJoinOperat >>> or.java:533) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genObject(CommonJoinOperat >>> or.java:522) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genObject(CommonJoinOperat >>> or.java:522) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.checkAndGenObject(CommonJo >>> inOperator.java:563) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.endGroup(CommonJoinOperato >>> r.java:545) >>> at org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:159) >>> at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:318) >>> at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2198) >>> java.lang.ClassCastException: >>> org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableIntObjectIns >>> pector cannot be cast to >>> org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspecto >>> r >>> at >>> org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDeTypeString.serialize( >>> DynamicSerDeTypeString.java:63) >>> at >>> org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDeFieldList.serialize(D >>> ynamicSerDeFieldList.java:249) >>> at >>> org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDeStructBase.serialize( >>> DynamicSerDeStructBase.java:81) >>> at >>> org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDe.serialize(DynamicSer >>> De.java:177) >>> at >>> org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.jav >>> a:180) >>> at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:492) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.createForwardJoinObject(Co >>> mmonJoinOperator.java:290) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genObject(CommonJoinOperat >>> or.java:533) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genObject(CommonJoinOperat >>> or.java:522) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genObject(CommonJoinOperat >>> or.java:522) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.checkAndGenObject(CommonJo >>> inOperator.java:563) >>> at >>> org.apache.hadoop.hive.ql.exec.CommonJoinOperator.endGroup(CommonJoinOperato >>> r.java:545) >>> at org.apache.hadoop.hive.ql.exec.ExecReducer.close(ExecReducer.java:236) >>> at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:329) >>> at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2198) >>> >>> >>> Thanks for your help! >>> >>> >> >> >> >> -- >> Yours, >> Zheng > > -- Yours, Zheng
