如何在 Hadoop pig 中使用“case when”?

Posted

技术标签:

【中文标题】如何在 Hadoop pig 中使用“case when”?【英文标题】:How to use "case when" in Hadoop pig? 【发布时间】:2021-01-06 02:12:22 【问题描述】:

这个 pig-sql 伪代码的正确猪语言是什么?data = foreach data generate case when column1 is null then -1 else column2 end as new_column; 我在 hadoop pig 中搜索案例,但没有。那么在猪中执行此操作的替代方法是什么?

【问题讨论】:

【参考方案1】:

使用 CASE WHEN 的解决方案是:

new_data = FOREACH data GENERATE 
    *,
    (CASE 
        WHEN column1 IS NULL THEN -1
        ELSE column2
    END) AS new_column;

【讨论】:

【参考方案2】:

应该能够使用 bincond 表达式,例如:

B = FOREACH A GENERATE 
    *,
    (column1 IS NULL ? -1 : column2) AS new_column
    ;

Pig 确实有一个 WHEN CASE 函数,它可以用来代替有点混乱的 binconds 链接在一起。您可以在此处阅读算术运算符和更多内容:https://pig.apache.org/docs/r0.17.0/basic.html

【讨论】:

以上是关于如何在 Hadoop pig 中使用“case when”?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Hadoop/PIG 中处理非 ASCII/亚洲/中文字符

如何在 Hadoop 中的机器之间传输文件并使用 Pig 搜索字符串

如何使用 apache pig 在 hadoop 集群上加载文件?

如何查看Hadoop上安装的pig版本

给定 Hadoop 中的阈值,如何使用 PIG 进行连接

如何在hadoop pig中执行-fs