【问题标题】:Pig : Cogroup How to avoid Blank valuesPig : Cogroup 如何避免空白值
【发布时间】:2014-01-14 11:52:19
【问题描述】:

我是猪新手。 在做COGROUP 时,我遇到了问题。 我正在尝试对两个文件执行COGROUP。我用于 COGROUP 的键具有空值。

以下是我的输入文件: 输入文件_1:

a|b||
e|f||

输入文件_2:

a|b||
e|f||

在执行COGROUP 时,我使用所有四列作为键。 (最后两栏为空)

我的预期输出是两条记录,但我得到了四条记录作为输出。 在 PIG 中执行 COGROUP 时,任何人都可以帮助如何避免空白值。

提前致谢。

【问题讨论】:

  • 你能分享一些代码吗?

标签: apache-pig


【解决方案1】:

空值在 PIG 中的处理方式非常不同。

正如艾伦·盖茨所说,《Programming Pig》一书的作者说

cogroup 处理键中的 null 值与 group 类似,但不同 加入。即所有key中值为null的记录都会被收集起来。

因此 COGROUP 的输出将是

((a,b,,),{(a,b,,)},{})
((a,b,,),{},{(a,b,,)})
((e,f,,),{(e,f,,)},{})
((e,f,,),{},{(e,f,,)})

在您的情况下,您必须选择 JOIN 而不是 COGROUP。从而给你以下结果

(a,b,,,a,b,,)
(e,f,,,e,f,,)

然后生成所需的值。

【讨论】:

    猜你喜欢
    • 2018-10-18
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    相关资源
    最近更新 更多