728x90
반응형

spark-sql이 데이터를 빠르게 search 하는데 효과적이긴 하지만 데이터가 너무 크거나 복잡한 연산을 필요로 할 때는 Spark RDD API를 사용하는 것이 더 나을 때가 있다.
스칼라로 코드를 작성할 수 있기 때문에 복잡한 연산을 표현하기에 더 직관적이고 적절하다.

combine 관련 연산 중 가장 많이 쓰이는 두 개의 메소드가 groupByKey와 reduceByKey이다.
groupByKey보다는 reduceByKey가 더 효율적으로 구현되어 있다.

그래서 공식 API 문서를 비롯한 여러 곳에서 groupByKey 사용을 권장하지 않고 있다.


이유는 map-side combine이 효율적인데 groupByKey는 map-side combine을 하지 않도록 되어있기 때문이다.


https://databricks.gitbooks.io/databricks-spark-knowledge-base/content/best_practices/prefer_reducebykey_over_groupbykey.html
(groupByKey 보다 reduceByKey가 더 나은 이유)

728x90
반응형

+ Recent posts