HADOOP PIG错误与处理int long的订单相关
这是部分代码(在测试该部分之前省略了代码) 这对结果没有问题:HADOOP PIG错误与处理int long的订单相关,hadoop,types,apache-pig,Hadoop,Types,Apache Pig,这是部分代码(在测试该部分之前省略了代码) 这对结果没有问题: data4: {group: chararray,cost: int} 但是,如果我更改了 描述数据4 到 转储数据4 ,它将导致错误: 2014-06-11 17:22:26,525 ERROR org.apache.pig.tools.pigstats.SimplePigStats: ERROR: java.lang.RuntimeException: java.lang.ClassCastException: java.la
data4: {group: chararray,cost: int}
但是,如果我更改了
描述数据4
到
转储数据4
,它将导致错误:
2014-06-11 17:22:26,525 ERROR org.apache.pig.tools.pigstats.SimplePigStats:
ERROR: java.lang.RuntimeException: java.lang.ClassCastException: java.lang.L
ong cannot be cast to java.lang.Integer
2014-06-11 17:22:26,525 ERROR org.apache.pig.tools.pigstats.PigStatsUtil: 1
map reduce job(s) failed!
2014-06-11 17:22:26,573 ERROR org.apache.pig.tools.grunt.Grunt: ERROR 1066:
Unable to open iterator for alias data4. Backend error : java.lang.RuntimeEx
ception: java.lang.ClassCastException: java.lang.Long cannot be cast to java
.lang.Integer
我检查了成本字段的数据,每个值都在int范围内,但是如果我更改
成本:整数
到
成本:长期
,错误消失了
我就是不明白这里是怎么涉及到long类型的
谢谢成本字段的值在int范围内并不重要。如果它将原语
int
强制转换为long
,这可能会起作用。但是在Pig中,在模式中定义一个字段为cost:int
就是将其定义为对象java.lang.Integer,而该对象不能转换为java.lang.Long
e、 g以下代码甚至不能用java编译:
Integer myInt = new Integer(23);
Long myLong = (Long) myInt;
这会导致ClassCastException:
Integer myInt = new Integer(23);
Object myObject = (Object) myInt;
Long myLong = (Long) myObject;
来自
data1
的cpc
的数据类型是什么?对于在这里查找此帖子的人,请参阅。
Integer myInt = new Integer(23);
Object myObject = (Object) myInt;
Long myLong = (Long) myObject;