在 Apache Pig 中,FILTER 运算符用于从数据集中选择满足指定条件的记录。FILTER 操作允许你使用表达式来定义筛选条件,只保留符合条件的数据。

以下是一个简单的示例,演示如何使用 FILTER 运算符:
-- 载入数据
A = LOAD 'data.txt' USING PigStorage(',') AS (name:chararray, age:int);

-- 过滤出年龄大于 25 的记录
B = FILTER A BY age > 25;

-- 显示结果
DUMP B;

在上述例子中,FILTER A BY age > 25; 将数据集 A 中的记录过滤,只保留年龄大于 25 的记录,结果存储在数据集 B 中。

你还可以使用多个条件组合来进行筛选:
-- 过滤出名字不为空且年龄在 20 到 30 之间的记录
C = FILTER A BY name IS NOT NULL AND (age >= 20 AND age <= 30);

-- 显示结果
DUMP C;

在上述例子中,FILTER A BY name IS NOT NULL AND (age >= 20 AND age <= 30); 筛选出名字不为空且年龄在 20 到 30 之间的记录。

FILTER 操作通常与 FOREACH...GENERATE 结构一起使用,以选择和处理特定的字段。
-- 选择并处理满足条件的字段
D = FOREACH C GENERATE name, age * 2;

-- 显示处理后的结果
DUMP D;

在上述例子中,FOREACH C GENERATE name, age * 2; 对满足条件的记录选择名字和年龄字段,并将年龄字段乘以 2。

总体而言,FILTER 运算符是在 Apache Pig 中用于选择满足特定条件的记录的关键工具,使得你能够方便地对数据集进行筛选。


转载请注明出处:http://www.zyzy.cn/article/detail/11102/Apache Pig