hadoop pig-带逗号的加载浮点

vatpfxk5  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(227)

我有一个csv文件,里面充满了用逗号而不是点编码的浮点数。我制作了一个pig加载脚本来精确计算float类型,但是当读取逗号时,pig无法将其转换为float(他希望float有点)。
如何在加载阶段更改逗号?我知道自定义项可以搞定这个把戏,但还有其他更简单的方法吗?
谢谢。

toe95027

toe950271#

好吧,用一些简单的数据来测试一下:

1,2;2,3;4,5
5,6;6,7;7,8

Pig脚本:

data = load 'commatest.csv' using PigStorage(';') as (f1:chararray, f2:chararray, f3:chararray);
replaced = foreach data generate REPLACE(f1, ',', '.') as f1dot, REPLACE(f2, ',', '.') as f2dot, REPLACE(f3, ',', '.') as f3dot;
fdata = foreach replaced generate (float)f1dot as f1, (float)f2dot as f2, (float)f3dot as f3;
dump fdata;

输出:

(1.2,2.3,4.5)
(5.6,6.7,7.8)

要测试它是否真的转换为float:

test = foreach fdata generate f1*f2*f3;
dump test;

输出:

(12.42)
(292.65598)

相关问题