hadoop - 逐个从包中删除空值?

标签 hadoop apache-pig

我有以下内容:

(id: int, 名字: chararray)

然后我按 id 分组,创建一个名字包。我看到在名称包中,可能有一个空值。如何从包中删除空值?

最佳答案

您可以使用嵌套在 FOREACH 中的 FILTER 从 GROUP BY 创建的包中删除元组。

inpt = LOAD '...' as (id: int, names: chararray);
grp = GROUP inpt BY id;
result = FOREACH grp {
   no_nulls = FILTER inpt BY names is not null;
  GENERATE group, no_nulls;
};

或者在分组之前过滤空名称:

inpt = LOAD '...' as (id: int, names: chararray);
no_nulls = FILTER input BY names is not null;
grp = GROUP no_nulls BY id;

关于hadoop - 逐个从包中删除空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14670061/

相关文章:

Hadoop:在hadoop 2.0.0中编写Map reduce程序的主要区别是什么

hadoop - DNS不一致

使用 mrjob subprocess.CalledProcessError 的 Python hadoop mapreduce 作业

hadoop - Datanode之一磁盘卷故障

hadoop - 如何将没有任何分隔符的字符串转换为逗号分隔的字符串?

hadoop - 如何从 Pig 中的关系生成自定义模式?

hadoop - 获取 HBase 表所有者的命令

hadoop - 使用Hue时使用Pig存储数据到Hbase报错

java - Java中的Pig UDF : Error 1070

java - Pig Udf 在显示结果