以下是一个简单的示例,演示如何使用 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