우노
[Spark] RDD의 내용을 출력하는 방법 본문
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와 같은 분산 파일 시스템에 데이터를 써버린다.
'Data > Spark' 카테고리의 다른 글
[Spark] Matrix의 Row를 전체 Vertex 개수로 두고 Col 기준으로 나누기 ( 중복 허용 ) (0) | 2020.10.10 |
---|---|
[Spark] RDD 데이터를 saveAsTextFile 을 사용해 S3 에 저장하기 (0) | 2020.10.10 |
[Spark] Spark Executor 설정 (2) | 2020.10.04 |
[Spark] spark.executor.heartbeatInterval 오류 (0) | 2020.07.27 |
[Spark] Java, Spark, Scala 버전 변경하기 (0) | 2020.07.16 |
Comments