Свинья скрипт найти строки отличаются только на один столбец - PullRequest
1 голос
/ 02 октября 2019

Мне нужно взять среднее значение третьего столбца, если первый и второй столбцы совпадают.
Пример ввода: {1, 10, 11}, {1,10, 12} , {2, 5, 7}, {2, 5, 8}, {2, 5, 12} {3, 6, 10}

Я понимаю функции GROUP By и AVG. можно использовать, но не уверен, как использовать его в вышеуказанном контексте.

B = GROUP A BY name;
C = FOREACH B GENERATE A.name, AVG(A.gpa); ```

Expected : {1,10, 11.5}, {2, 5, 9}, {3, 6, 10}

1 Ответ

0 голосов
/ 02 октября 2019

сгруппируйте по первым двум столбцам, а затем используйте среднее значение.

B = GROUP A BY (a1,a2);-- Note: use whatever is the column name instead of a1,a2
C = FOREACH B GENERATE FLATTEN(group) as (a1,a2),AVG(A.gpa);
...