You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pig中统计特定国家(如美国)的职业及年龄分组数量

在Pig中统计美国用户的职业分布与年龄分组数量

需求说明

从用户数据中筛选出美国(loc='us')的记录,分别统计:

  • 各职业的用户数量
  • 各年龄(或自定义年龄分组)的用户数量

完整Pig Latin实现

1. 筛选美国地区用户

首先从原始数据集customer中过滤出美国用户:

filter_us_data = FILTER customer BY loc == 'us';

2. 统计各职业的用户数量

按职业字段分组后,计算每组的用户数:

-- 按职业分组
group_by_occupation = GROUP filter_us_data BY occupation;
-- 生成职业-数量统计结果
occupation_count = FOREACH group_by_occupation GENERATE 
    group AS occupation, 
    COUNT(filter_us_data) AS user_count;

3. 统计各年龄的用户数量

按单个年龄值分组统计:

-- 按年龄分组
group_by_age = GROUP filter_us_data BY age;
-- 生成年龄-数量统计结果
age_count = FOREACH group_by_age GENERATE 
    group AS age, 
    COUNT(filter_us_data) AS user_count;

(可选)自定义年龄区间分组统计

如果需要按年龄区间(如18-25、26-35等)统计,先添加分组字段再统计:

-- 给用户标记年龄分组
age_grouped_data = FOREACH filter_us_data GENERATE *, 
    CASE 
        WHEN age >= 18 AND age <= 25 THEN '18-25'
        WHEN age >= 26 AND age <= 35 THEN '26-35'
        WHEN age >= 36 AND age <= 45 THEN '36-45'
        ELSE '46+'
    END AS age_group;

-- 按年龄区间分组统计
group_by_age_group = GROUP age_grouped_data BY age_group;
age_group_count = FOREACH group_by_age_group GENERATE 
    group AS age_group, 
    COUNT(age_grouped_data) AS user_count;

结果查看

使用DUMP命令查看统计结果:

DUMP occupation_count; -- 查看职业统计
DUMP age_count; -- 查看单年龄统计
DUMP age_group_count; -- 查看年龄区间统计

注意事项

你提供的原始代码中,COUNT(customer)存在错误,应该改为COUNT(filter_data)(对应分组后的关系名),否则会因找不到customer关系报错。

内容的提问来源于stack exchange,提问作者ABHI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:00:14