将“3”转换为“3”使用 PigLatin 到 3
我读了一个 csv 文件,其中包含带有这样的数字的字段:“3”。 我可以使用 PigLatin 将此字段从“3”转换为 3 吗?我需要它来使用 SUM() - 函数。
感谢您的帮助!
I read in a csv-file that contains fields with numbers like that: "3".
Can I convert this fields from "3" to 3 with PigLatin? I need it to use the SUM() - Function.
Thanks for your help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
只需使用 REPLACE< 删除
"
怎么样? /a>?例如:
那么你可以
GROUP
和SUM
,一个好处是你可以将返回的字符串直接转换为数字(不需要处理包)。 . REGEX_EXTRACT 也可以用于执行相同的操作。
What about just removing the
"
with REPLACE?For example:
Then you can
GROUP
andSUM
.One advantage is that you can cast the returned string directly to a number (no need to deal with bags). REGEX_EXTRACT could be used to do the same too.
TOKENIZE 函数将字符串拆分为被视为单词分隔符的各种字符,其中之一是引号。因此,如果您对“3”进行标记并取中间项,它应该只是 3。
The
TOKENIZE
function will split a string on various characters considered to be word separators, one of which is a quote mark. So if you tokenize "3" and take the middle item, it should be just 3.您可以编写一个 UDF 来去掉周围的引号,或者使用 JacobM 的方法。
但是,之后您应该将
chararray '3'
转换为int
:(int)$1
或(int)myvalue< /代码>。这样您就可以使用
sum
。http://pig.apache.org/docs/r0.5.0 /piglatin_reference.html#Cast+运算符
You could write a UDF that strips the quotes around it OR use JacobM's approach.
However, afterwards, you should cast the
chararray '3'
to anint
:(int)$1
or(int)myvalue
. This way you can usesum
.http://pig.apache.org/docs/r0.5.0/piglatin_reference.html#Cast+Operators