如何在hadoop中获得IntWritable的最大范围?

时间:2018-02-17 08:38:43

标签: java hadoop mapreduce

有没有办法获得Intwritable的范围?

Int.MAX_VALUE是否有等同于IntWritable的内容?

1 个答案:

答案 0 :(得分:0)

Integer是原始int数据类型的包装器,使其有资格在java map中用作键/值。但是IntWritable并不真正代表原始数据类型的包装器。相反,它是整数的变体,具有优化的序列化实现(java默认序列化过于庞大)。通过这样说,Intwritable并不意味着取代Integer所用的内容。即使在映射器中,也使用Integer编写通用逻辑;只有当您在mapredcue个阶段内发出一个值时,IntWritable类型才能进行优化。 因此,它很高兴允许您初始化IntWritable,其中包含从任何地方获取的最大值,或者从核心Java库本身:

 IntWritable writable = new IntWritable(Integer.MAX_VALUE)

重要的是,它与初始化Integer不同,后者返回一个不可变的Integer对象。 IntWritable确实有set(int value)方法且可变。这对于支持精益序列化/反序列化非常重要。