将“3”转换为“3”使用 PigLatin 到 3

发布于 2024-10-06 08:23:49 字数 106 浏览 5 评论 0原文

我读了一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

天生の放荡 2024-10-13 08:23:50

只需使用 REPLACE< 删除 " 怎么样? /a>?

例如:

data =
    LOAD 'data.txt' AS (num:CHARARRAY);

numbers =
    FOREACH data
    GENERATE
        (INT) REPLACE(num, '\\"', '');

那么你可以GROUPSUM

一个好处是你可以将返回的字符串直接转换为数字(不需要处理包)。 . REGEX_EXTRACT 也可以用于执行相同的操作。

What about just removing the " with REPLACE?

For example:

data =
    LOAD 'data.txt' AS (num:CHARARRAY);

numbers =
    FOREACH data
    GENERATE
        (INT) REPLACE(num, '\\"', '');

Then you can GROUP and SUM.

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.

挽清梦 2024-10-13 08:23:50

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.

后eg是否自 2024-10-13 08:23:50

您可以编写一个 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 an int: (int)$1 or (int)myvalue. This way you can use sum.

http://pig.apache.org/docs/r0.5.0/piglatin_reference.html#Cast+Operators

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文