Я нахожусь на очень ранних этапах обучения Pig/Pig Latin, поэтому прощайте недостаток знаний. Если бы мы имели набор данных, который был в формате что-то вроде:все комбинации с использованием свиньи
Fname, LNAME, месяц, платить, emp_category
Боб Смит, январь, 2000, не менеджер
Боб Смит, Февраль, 2000, не менеджер
Джон Доу, январь, 4500, менеджер
Джон Доу, февраль, 4500, менеджер
Я вижу, как бы я т Если бы я хотел создать набор данных, который также вычитал бы общую зарплату каждого сотрудника из общей заработной платы каждого сотрудника:
Bob, Smith 4000, не-менеджер, Джон Доу, 9000, менеджер, 5000
с SQL я бы, вероятно, просто создать две временные таблицы с:
ВЫБОР Fname, LName, сумма (зарплаты) как total_pay_m WHERE категория = 'менеджер' INTO M_table FROM table_name;
ВЫБОР Fname, LNAME, сумма (оплата), как total_pay_nm Где категория = 'non_manager' НА NM_table FROM table_name;
SELECT *, ABS (total_pay_nm - total_pay_m), как PayDiff ОТ M_table, NM_table ГДЕ M_table.fname <> NM_table.fname и M_table.lname <> NM_table.lname;
SQL может быть не идеальным, но я надеюсь, что этот вопрос будет понят, но любая помощь по достижению этого с помощью Pig будет оценена по достоинству.
Очень приятно! В итоге у меня получилось нечто похожее. Я должен был немного сгладить, но вы не знали бы этого, основываясь на том, как я задал вопрос. – user1624577