精度最佳

时间:2014-02-27 00:39:14

标签: hadoop mapreduce

我是初学者,在尝试读取99.99形式的值时,我遇到了MR的问题。

我正在尽我所能地读书。我想尝试使用Java的类型来确定是否使用DoubleWritable或FloatWritable,但经过一些研究,Java似乎建议不要使用这些(double和float)来表示货币,而是使用BigDecimal。我无法在任何Hadoop API文档中找到BigDecimalWritable(但为Hive找到了一些东西)。

我正在使用FileInputFormat类,我理解默认为LongWritable,Text对。

我应该在我的“驱动程序”部分/“作业”类中使用哪种Hadoop数据类型来处理货币?

我已经尝试过FloatWritable和DoubleWritable,我的输出总是以输出文件中的String,Number.0结尾(例如,“[tab] 55.0”,当我知道55.0错误时)。

1 个答案:

答案 0 :(得分:0)

Hive有一个BigDecimalWritable。它实现了org.apache.hadoop.io.Writable,因此它可以与Hadoop一起使用。