오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-11 04:45
관리 메뉴

우노

[Spark] RDD의 내용을 출력하는 방법 본문

Data/Spark

[Spark] RDD의 내용을 출력하는 방법

운호(Noah) 2020. 10. 10. 22:08
  • Local mode(single machine)가 아닌 Cluster mode에서는

  • RDD 생성 시 RDD가 각각 분할 되어 executor에 할당된다.

  • 이 때, executor에 할당 된 모든 RDD의 내용을 출력하기 위해서는 collect() 함수가 사용된다.

      myrdd.collect().foreach(println)
  • 그러나, collect() 함수 사용 시 모든 executor의 rdd를 drvier node로 취합하기 때문에 out of memory가 발생할 수 있다.

  • 따라서, 이를 해결 하기 위해 take() 함수가 사용된다.

  • take() 함수는 RDD의 일부 내용만을 출력할 때 사용되며 아래는 100개의 element 만을 print 하는 예이다.

      myrdd.take(100).foreach(println)
  • RDD에 collect() 함수가 불가능한 경우는 데이터가 너무 크기 때문이며,

  • 대부분의 경우 saveAsTextFile() 함수 등을 사용하여 HDFS나 S3와 같은 분산 파일 시스템에 데이터를 써버린다.

Comments