You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hive.apache.org by Kanna Karanam <ka...@microsoft.com> on 2012/07/10 22:05:54 UTC

Casting exception while converting from "LazyDouble" to "LazyString"

Has anyone seen this error before? Am I missing anything here?

2012-07-10 11:11:02,203 INFO org.apache.hadoop.mapred.TaskInProgress: Error from attempt_201207091248_0107_m_000000_0: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"name":"zach johnson","age":77,"gpa":3.27}
                at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:161)
                at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
                at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
                at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
                at org.apache.hadoop.mapred.Child$4.run(Child.java:271)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:396)
                at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1124)
                at org.apache.hadoop.mapred.Child.main(Child.java:265)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"name":"zach johnson","age":77,"gpa":3.27}
                at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:550)
                at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143)
                ... 8 more
Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.serde2.lazy.LazyDouble cannot be cast to org.apache.hadoop.hive.serde2.lazy.LazyString
                at org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive.LazyStringObjectInspector.getPrimitiveWritableObject(LazyStringObjectInspector.java:47)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:351)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serializeStruct(LazyBinarySerDe.java:255)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:202)
                at org.apache.hadoop.hive.ql.exec.ReduceSinkOperator.processOp(ReduceSinkOperator.java:236)
                at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
                at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
                at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:83)
                at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
                at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
                at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:531)


Thanks,
Kanna

RE: Casting exception while converting from "LazyDouble" to "LazyString"

Posted by Kanna Karanam <ka...@microsoft.com>.
Thanks Kulkarni - I think I have the right data types but here are DDL definitions and query.

Query:

select registration
                    from studenttab10k s right outer join votertab10k v
                        on (s.name = v.name);

Table definitions:

create external table IF NOT EXISTS votertab10k(
            name string,
            age int,
            registration string,
            contributions float)
        row format delimited
        fields terminated by '\t'
        stored as textfile
        location '/user/hive/tests/data/votertab10k';

create external table IF NOT EXISTS studenttab10k(
            name string,
            age int,
            gpa double)
        row format delimited
        fields terminated by '\t'
        stored as textfile
        location '/user/hive/tests/data/studenttab10k';

Thanks,
Kanna


From: kulkarni.swarnim@gmail.com [mailto:kulkarni.swarnim@gmail.com]
Sent: Tuesday, July 10, 2012 1:25 PM
To: user@hive.apache.org
Cc: dev@hive.apache.org
Subject: Re: Casting exception while converting from "LazyDouble" to "LazyString"

Hi Kanna,

This might just mean that in your query you are having a STRING type for a field which is actually a DOUBLE.
On Tue, Jul 10, 2012 at 3:05 PM, Kanna Karanam <ka...@microsoft.com>> wrote:
Has anyone seen this error before? Am I missing anything here?

2012-07-10 11:11:02,203 INFO org.apache.hadoop.mapred.TaskInProgress: Error from attempt_201207091248_0107_m_000000_0: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"name":"zach johnson","age":77,"gpa":3.27}
                at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:161)
                at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
                at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
                at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
                at org.apache.hadoop.mapred.Child$4.run(Child.java:271)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:396)
                at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1124)
                at org.apache.hadoop.mapred.Child.main(Child.java:265)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"name":"zach johnson","age":77,"gpa":3.27}
                at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:550)
                at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143)
                ... 8 more
Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.serde2.lazy.LazyDouble cannot be cast to org.apache.hadoop.hive.serde2.lazy.LazyString
                at org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive.LazyStringObjectInspector.getPrimitiveWritableObject(LazyStringObjectInspector.java:47)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:351)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serializeStruct(LazyBinarySerDe.java:255)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:202)
                at org.apache.hadoop.hive.ql.exec.ReduceSinkOperator.processOp(ReduceSinkOperator.java:236)
                at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
                at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
                at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:83)
                at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
                at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
                at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:531)


Thanks,
Kanna



--
Swarnim

RE: Casting exception while converting from "LazyDouble" to "LazyString"

Posted by Kanna Karanam <ka...@microsoft.com>.
Thanks Kulkarni - I think I have the right data types but here are DDL definitions and query.

Query:

select registration
                    from studenttab10k s right outer join votertab10k v
                        on (s.name = v.name);

Table definitions:

create external table IF NOT EXISTS votertab10k(
            name string,
            age int,
            registration string,
            contributions float)
        row format delimited
        fields terminated by '\t'
        stored as textfile
        location '/user/hive/tests/data/votertab10k';

create external table IF NOT EXISTS studenttab10k(
            name string,
            age int,
            gpa double)
        row format delimited
        fields terminated by '\t'
        stored as textfile
        location '/user/hive/tests/data/studenttab10k';

Thanks,
Kanna


From: kulkarni.swarnim@gmail.com [mailto:kulkarni.swarnim@gmail.com]
Sent: Tuesday, July 10, 2012 1:25 PM
To: user@hive.apache.org
Cc: dev@hive.apache.org
Subject: Re: Casting exception while converting from "LazyDouble" to "LazyString"

Hi Kanna,

This might just mean that in your query you are having a STRING type for a field which is actually a DOUBLE.
On Tue, Jul 10, 2012 at 3:05 PM, Kanna Karanam <ka...@microsoft.com>> wrote:
Has anyone seen this error before? Am I missing anything here?

2012-07-10 11:11:02,203 INFO org.apache.hadoop.mapred.TaskInProgress: Error from attempt_201207091248_0107_m_000000_0: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"name":"zach johnson","age":77,"gpa":3.27}
                at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:161)
                at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
                at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
                at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
                at org.apache.hadoop.mapred.Child$4.run(Child.java:271)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:396)
                at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1124)
                at org.apache.hadoop.mapred.Child.main(Child.java:265)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"name":"zach johnson","age":77,"gpa":3.27}
                at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:550)
                at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143)
                ... 8 more
Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.serde2.lazy.LazyDouble cannot be cast to org.apache.hadoop.hive.serde2.lazy.LazyString
                at org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive.LazyStringObjectInspector.getPrimitiveWritableObject(LazyStringObjectInspector.java:47)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:351)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serializeStruct(LazyBinarySerDe.java:255)
                at org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:202)
                at org.apache.hadoop.hive.ql.exec.ReduceSinkOperator.processOp(ReduceSinkOperator.java:236)
                at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
                at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
                at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:83)
                at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
                at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
                at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:531)


Thanks,
Kanna



--
Swarnim

Re: Casting exception while converting from "LazyDouble" to "LazyString"

Posted by "kulkarni.swarnim@gmail.com" <ku...@gmail.com>.
Hi Kanna,

This might just mean that in your query you are having a STRING type for a
field which is actually a DOUBLE.

On Tue, Jul 10, 2012 at 3:05 PM, Kanna Karanam <ka...@microsoft.com>wrote:

>  Has anyone seen this error before? Am I missing anything here?****
>
> ** **
>
> 2012-07-10 11:11:02,203 INFO org.apache.hadoop.mapred.TaskInProgress:
> Error from attempt_201207091248_0107_m_000000_0:
> java.lang.RuntimeException:
> org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while
> processing row {"name":"zach johnson","age":77,"gpa":3.27}****
>
>                 at
> org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:161)****
>
>                 at
> org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)****
>
>                 at
> org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)****
>
>                 at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)*
> ***
>
>                 at org.apache.hadoop.mapred.Child$4.run(Child.java:271)***
> *
>
>                 at java.security.AccessController.doPrivileged(Native
> Method)****
>
>                 at javax.security.auth.Subject.doAs(Subject.java:396)****
>
>                 at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1124)
> ****
>
>                 at org.apache.hadoop.mapred.Child.main(Child.java:265)****
>
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime
> Error while processing row {"name":"zach johnson","age":77,"gpa":3.27}****
>
>                 at
> org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:550)**
> **
>
>                 at
> org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143)****
>
>                 ... 8 more****
>
> Caused by: java.lang.ClassCastException:
> org.apache.hadoop.hive.serde2.lazy.LazyDouble cannot be cast to
> org.apache.hadoop.hive.serde2.lazy.LazyString****
>
>                 at
> org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive.LazyStringObjectInspector.getPrimitiveWritableObject(LazyStringObjectInspector.java:47)
> ****
>
>                 at
> org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:351)
> ****
>
>                 at
> org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serializeStruct(LazyBinarySerDe.java:255)
> ****
>
>                 at
> org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:202)
> ****
>
>                 at
> org.apache.hadoop.hive.ql.exec.ReduceSinkOperator.processOp(ReduceSinkOperator.java:236)
> ****
>
>                 at
> org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)****
>
>                 at
> org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)****
>
>                 at
> org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:83)
> ****
>
>                 at
> org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)****
>
>                 at
> org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)****
>
>                 at
> org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:531)**
> **
>
> ** **
>
> ** **
>
> Thanks,****
>
> Kanna****
>



-- 
Swarnim

Re: Casting exception while converting from "LazyDouble" to "LazyString"

Posted by "kulkarni.swarnim@gmail.com" <ku...@gmail.com>.
Hi Kanna,

This might just mean that in your query you are having a STRING type for a
field which is actually a DOUBLE.

On Tue, Jul 10, 2012 at 3:05 PM, Kanna Karanam <ka...@microsoft.com>wrote:

>  Has anyone seen this error before? Am I missing anything here?****
>
> ** **
>
> 2012-07-10 11:11:02,203 INFO org.apache.hadoop.mapred.TaskInProgress:
> Error from attempt_201207091248_0107_m_000000_0:
> java.lang.RuntimeException:
> org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while
> processing row {"name":"zach johnson","age":77,"gpa":3.27}****
>
>                 at
> org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:161)****
>
>                 at
> org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)****
>
>                 at
> org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)****
>
>                 at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)*
> ***
>
>                 at org.apache.hadoop.mapred.Child$4.run(Child.java:271)***
> *
>
>                 at java.security.AccessController.doPrivileged(Native
> Method)****
>
>                 at javax.security.auth.Subject.doAs(Subject.java:396)****
>
>                 at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1124)
> ****
>
>                 at org.apache.hadoop.mapred.Child.main(Child.java:265)****
>
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime
> Error while processing row {"name":"zach johnson","age":77,"gpa":3.27}****
>
>                 at
> org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:550)**
> **
>
>                 at
> org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143)****
>
>                 ... 8 more****
>
> Caused by: java.lang.ClassCastException:
> org.apache.hadoop.hive.serde2.lazy.LazyDouble cannot be cast to
> org.apache.hadoop.hive.serde2.lazy.LazyString****
>
>                 at
> org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive.LazyStringObjectInspector.getPrimitiveWritableObject(LazyStringObjectInspector.java:47)
> ****
>
>                 at
> org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:351)
> ****
>
>                 at
> org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serializeStruct(LazyBinarySerDe.java:255)
> ****
>
>                 at
> org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.serialize(LazyBinarySerDe.java:202)
> ****
>
>                 at
> org.apache.hadoop.hive.ql.exec.ReduceSinkOperator.processOp(ReduceSinkOperator.java:236)
> ****
>
>                 at
> org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)****
>
>                 at
> org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)****
>
>                 at
> org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:83)
> ****
>
>                 at
> org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)****
>
>                 at
> org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)****
>
>                 at
> org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:531)**
> **
>
> ** **
>
> ** **
>
> Thanks,****
>
> Kanna****
>



-- 
Swarnim