我有以下数据
primary,first,second
1,393440.09,354096.08
1,4410533.33,3969479.99
1,-4803973.41,-4323576.07
我得把第一栏和第二栏加起来。下面是我正在执行的脚本
data_load= load <filelocation> using org.apache.pig.piggybank.storage.CSVExcelStorage(',', 'NO_MULTILINE', 'NOCHANGE', 'SKIP_INPUT_HEADER') As (primary:double, first:double,second:double)
dataAgrr = group data_load by primary;
sumData = FOREACH dataAgrr GENERATE
group as data,
SUM(data_load.first) as first,
SUM(data_load.second) as second,
SUM(data_load.primary) as primary;
执行后,生成以下输出:
(1.0,0.009999999951105565,-5.820766091346741E-11,3.0)
但是当我们手动添加第二列(354096.083969479.99,-4323576.07)时,得到0。
1条答案
按热度按时间kmbjn2e31#
pig在内部使用java“double”。使用下面的示例代码进行测试
这就产生了
如果需要更高的精度,可以尝试在脚本中使用“bigdecimal”而不是“double”。