Hadoop ecosystem/Spark
ReduceByKey vs. GroupByKey
snoohey
2017. 5. 11. 10:12
ReduceByKey
Key값을 가져야한다.
같은 node의 같은 key값 기준으로 values를 미리 병합하여 suffling한다.
reduceByKey에 function을 같이 넘겨 줄수 있다.
accociate / commutative (+, x만 사용)
countByValue : return값이 dictionary
GroupByKey
각 노드에서 병합하지않고 shuflling한후에 병합하기 때문에 네트워크부하가 많이 걸려 효율성이 떨어진다.(그래서 추천X)
groupbyKey 후에 function을 적용해서 값을 구한다.
K는 그대론데V는 iterableObject로 결과가 나온다.
그림출처 : http://www.ruxizhang.com/blog/spark-difference-between-reducebykey-groupbykey