我读入了一个 csv 文件,其中包含带有如下数字的字段:“3”。我可以使用 PigLatin 将此字段从“3”转换为 3 吗?我需要它来使用 SUM() - 函数。
谢谢你的帮助!
我读入了一个 csv 文件,其中包含带有如下数字的字段:“3”。我可以使用 PigLatin 将此字段从“3”转换为 3 吗?我需要它来使用 SUM() - 函数。
谢谢你的帮助!
"只需用REPLACE删除呢?
例如:
data =
LOAD 'data.txt' AS (num:CHARARRAY);
numbers =
FOREACH data
GENERATE
(INT) REPLACE(num, '\\"', '');
然后你可以GROUP和SUM。
一个优点是您可以将返回的字符串直接转换为数字(无需处理包)。REGEX_EXTRACT也可以用来做同样的事情。
该TOKENIZE函数将在被认为是单词分隔符的各种字符上拆分字符串,其中一个是引号。所以如果你标记“3”并取中间项,它应该只是 3。
您可以编写一个去掉引号的 UDF,或者使用 JacobM 的方法。
但是,之后,您应该将chararray '3'转换为int:(int)$1或(int)myvalue。这样你就可以使用sum.
http://pig.apache.org/docs/r0.5.0/piglatin_reference.html#Cast+Operators