У меня есть следующие данные, где мне нужно сгруппировать данные по ключу и посчитать число по ключу, чтобы отслеживать показатели. Я могу использовать groupBy и подсчитать для этой группы, но это требует некоторой случайности. Можно ли обойтись без шаффла?
ID,TempID,PermanantID
----------
xxx, abcd, 12345
xxx, efg, 1345
xxx, ijk, 1534
xxx, lmn, 13455
xxx, null, 12345
xxx, axg, null
yyy, abcd, 12345
yyy, efg, 1345
yyy, ijk, 1534
zzz, lmn, 13455
zzz, abc, null
вывод должен быть
ID Count1 Count2
----------
XXX 5 5
YYY 3 3
ZZZ 2 1
Я могу сделать это с помощью groupBy и считать
dataframe.groupby("ID").agg(col("TempID").as("Count1"),count(col("PermanantID").as("Count2"))
можем ли мы это сделатьиспользуя mapPartition?