오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-09 00:00
관리 메뉴

우노

[Spark] Collect 와 Count 의 차이 본문

Data/Spark

[Spark] Collect 와 Count 의 차이

운호(Noah) 2021. 8. 17. 12:37

RDD Operation

  • Spark 의 RDD 는 2가지 Operation(Transformation, Action) 을 사용해 조작할 수 있습니다
    • Transformation
      • 기존의 RDD 를 변경하여 새로운 RDD 를 생성하는 것입니다.
        • 즉, 리턴값이 RDD 입니다.
      • map, filter 등을 예로 들 수 있습니다.
    • Action
      • RDD 값을 기반으로 무엇인가를 계산해서, 결과를 생성하는 것입니다.
        • 즉, 리턴값이 데이터 또는 실행 결과입니다.
      • collect, count 등을 예로 들 수 있습니다.
  • 이러한, RDD 동작 원리의 핵심은 Lazy Evaluation (느긋한 연산) 입니다.
  • 즉, RDD 는 Action 연산자를 만나기 전까지는, Transformation 연산자가 아무리 쌓여도 처리하지 않습니다.
  • 따라서, Executor 에 할당된 RDD 의 내용을 확인하기 위해서는, Action 연산(collect, count, etc)이 필요합니다.

collect()

  • collect() 함수는, Executor 에 할당된 RDD 를 모두 Driver Node 로 취합하는 Action 이기 때문에, out of memory 가 발생할 수 있습니다.
  • 데이터 세트가 Drvier Memory 에 들어가지 못하는 크기라면, 사용하지 않는게 좋습니다.

count()

  • count() 함수는, Executor 에 할당된 RDD 의 개수를 합산하고, 합산된 정수를 반환하는 Action 이기 때문에, 데이터 전송이 최소화됩니다.
Comments