apache-pig - 使用猪找到基于城市和产品的最大数量?
问题描述
我必须找出在城市上花费的最大金额以及产品。
我的实现:
A = LOAD '/home/cloudera/Desktop/test' USING PigStorage (',') AS (T_id:int,date:chararray,pro_id:int,amount:int,product:chararray,city:chararray);
B = FOREACH A GENERATE $3,$4,$5;
describe B;
B: {amount: int,product: chararray,city: chararray}
C = group B BY $2;
D = FOREACH C GENERATE group, MAX(B.amount);
DUMP D;
我得到了什么
(Reno,279)
(clark,2000)
(colum,500)
(Petersburg,421)
(charleston,1974)
(long beach,300)
预期产出
(Com ports,Reno,279)
(Exer & Fit,clark,2000)
(Wat ports,colum,500)
(Team Sports,Petersburg,421)
(Recreation,charleston,1974)
(Exer & Fit,long beach,300)
请帮我解决这个问题..
解决方案
按产品和城市分组。
C = group B BY ($1,$2);
D = FOREACH C GENERATE FLATTEN(group) as (product,city), MAX(B.amount);
DUMP D;
推荐阅读
- azure-active-directory - 改善公司内部员工的 SSO 体验,同时访问受 Azure AD B2C 保护的消费者应用程序
- sql - 在 SQL 中将 CHAR 转换为 int 会导致错误
- python - 通过python json模块更新json文件无法通过discord命令工作
- com - 返回属性时未设置错误对象变量或块变量
- arrays - 在 perl 中,为什么 push 会导致 qr 创建的正则表达式在未放入双引号时被更改?
- javascript - 通过地理编码获取纬度和经度时无法创建可拖动标记
- html - 如何使用纯 CSS 切换侧边栏菜单?
- python - 有人可以帮我了解如何使用 pyModbus 将字符串数据编码到数字显示板上吗?
- android - java.lang.IllegalArgumentException:无法为类创建调用适配器
- spring-mvc - 在启动 tomcat 服务器后的控制台中,我收到错误消息。当我的 spring mvc projetc 部署在 tomcat7 上时