是否有可能在浮点数或双数字小数点后切割某个区域? 例如:结果将是2.67894 =>我希望得到2.6作为结果(舍入时不是2.7)。
答案 0 :(得分:0)
试试吧.. val是你的值,如2.666,3.666,4.666666,5.3456334 ......
b = foreach a GENERATE (FLOOR(val * 10) / 10);
dump b;
答案 1 :(得分:0)
为此编写UDF(用户定义函数)。
一个非常简单的python UDF(numformat.py):
@outputSchema('value:double')
def format(data):
return round(data,1)
(当然,您可以参数化UDF以使用不同的精度。)
比在猪代码中注册并使用它。例如:
REGISTER numformat.py USING jython as numformat;
A = LOAD 'so/testdata.csv' USING PigStorage(',') AS (data:double);
B = FOREACH A GENERATE numformat.format(data);
DUMP B;
对于以下输入:
2.1234
12.334
转储结果为:
(2.1)
(12.3)