Hadoop 使用清管器的所有组合

Hadoop 使用清管器的所有组合,hadoop,apache-pig,Hadoop,Apache Pig,我正处于学习Pig/Pig拉丁语的早期阶段,请原谅我知识的缺乏。如果我们有一个数据集,其格式如下: fname、lname、月份、薪资、emp_类别 鲍勃·史密斯,2000年1月,非经理 鲍勃·史密斯,2000年2月,非经理 约翰,能源部,4500年1月,经理 约翰,能源部,4500年2月,经理 我知道如何计算每位员工的总工资,如果我想创建一个数据集,同时从每位员工的总工资中减去每位员工的总工资,该怎么办: 鲍勃,史密斯4000,非经理,约翰·多伊,9000,经理,5000 使用SQL,我可能只

我正处于学习Pig/Pig拉丁语的早期阶段,请原谅我知识的缺乏。如果我们有一个数据集,其格式如下:

fname、lname、月份、薪资、emp_类别

鲍勃·史密斯,2000年1月,非经理

鲍勃·史密斯,2000年2月,非经理

约翰,能源部,4500年1月,经理

约翰,能源部,4500年2月,经理

我知道如何计算每位员工的总工资,如果我想创建一个数据集,同时从每位员工的总工资中减去每位员工的总工资,该怎么办:

鲍勃,史密斯4000,非经理,约翰·多伊,9000,经理,5000

使用SQL,我可能只需要创建两个临时表:

选择fname、lname、sum(pay)作为总付款金额 其中category='manager' 进入M_表 从表_名称

选择fname、lname、sum(pay)作为总付款金额 其中category='non_manager' 进入NM_表 从表_名称

选择*,ABS(总付款金额-总付款金额)作为付款差异 从M_表,NM_表 其中M_table.fname NM_table.fname和 M_table.lname NM_table.lname


SQL可能并不完美,但我希望大家理解这一点,但如果能帮助Pig实现这一点,我们将不胜感激

我认为使用CROSS可以得到所需的组合,然后减去两列

有趣的运动

输入:

Bob,Smith,January,2000,non-manager
Bob,Smith,February,2000,non-manager
John,Doe,January,4500,manager
John,Doe,February,4500,manager
Susan,Smith,January,4800,manager
Susan,Smith,February,4800,manager
清管器:

输出:

(John,Doe,9000,Bob,Smith,4000,-5000)
(Susan,Smith,9600,Bob,Smith,4000,-5600)

很不错的!我最终得到了类似的结果。我必须做一些压扁,但你不会知道,根据我如何设置的问题。
(John,Doe,9000,Bob,Smith,4000,-5000)
(Susan,Smith,9600,Bob,Smith,4000,-5600)