hadoop - pig 是否支持 NOT IN 子句?

标签 hadoop apache-pig

我在 PIG 中使用了 In 子句作为

emp =
FILTER employee_table
BY employee_id IN ('873', '809','819','829')
;

现在我需要使用 NOT IN 子句

no_emp =
FILTER employee_table
BY employee_id  NOT IN ('873', '809','819','829')
;

产生错误为

2016-08-29 13:22:46,165 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 146, column 14>  Syntax error, unexpected symbol at or near 'NOT'

有没有其他方法可以做到这一点?

最佳答案

您可以使用 SPILLED 和 OTHERWISE 命令。下面提到了一个例子

SPLIT employee_table INTO emp1 IF employee_id IN ('873', '809','819','829'),  emp2 OTHERWISE;

正如你所猜到的,具有 4 个员工 ID 的数据将指向关系 emp1,其余数据将指向关系 emp2

关于hadoop - pig 是否支持 NOT IN 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39207874/

相关文章:

sql - 需要大量时间的生产 Hadoop 查询

hadoop - elasticsearch-hadoop 1.3 M3代理支持不起作用

hadoop - 在 hbase 中导入导出表时找不到文件异常

hadoop - 使用apache pig从url中提取主机名

apache-spark - “No X11 DISPLAY variable”-什么意思?

hadoop - 使用 HCatStorer 时 Pig 出错

eclipse - 用于Hadoop 2的Pig 0.13.0的Ant构建失败

xml - Pig从HCat的列中爆炸XML

hadoop - 使用 PIG 从 CSV 文件中删除双引号 (")

hadoop - 将文件复制到hadoop中没有此类文件或目录