[HADOOP] Spark RDD에서 빈 파티션을 제거하십시오.
HADOOPSpark RDD에서 빈 파티션을 제거하십시오.
HDFS에서 데이터를 가져 와서 Spark RDD에 저장하고 있습니다. Spark은 HDFS 블록의 수를 기반으로 파티션 수를 만듭니다. 이로 인해 배관 중에 처리되는 많은 수의 빈 파티션이 생깁니다. 이 오버 헤드를 제거하기 위해 RDD에서 모든 빈 파티션을 필터링하려고합니다. 병합 및 재분할을 알고 있지만 모든 빈 파티션이 제거된다는 보장은 없습니다.
이 문제를 해결할 다른 방법이 있습니까?
해결법
-
==============================
1.빈 파티션을 RDD에서 간단하게 삭제하는 쉬운 방법은 없습니다.
빈 파티션을 RDD에서 간단하게 삭제하는 쉬운 방법은 없습니다.
병합하면 빈 파티션이 삭제된다는 보장은 없습니다. 빈 파티션 40 개와 데이터가있는 10 개의 파티션이있는 RDD가있는 경우 rdd.coalesce (45) 다음에 빈 파티션이 남아 있습니다.
파티션 재분할 방법은 데이터를 모든 파티션에서 균등하게 분할하므로 빈 파티션이 없습니다. 빈 파티션이 50 개인 RDD가 있고 데이터가있는 파티션이 10 개인 rdd.repartition (20)을 실행하면 데이터가 20 개의 파티션으로 균등하게 분할됩니다.
from https://stackoverflow.com/questions/33277567/remove-empty-partitions-from-spark-rdd by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 호스트 시스템에서 클라이언트로 VM에서 실행중인 HBase에 액세스 (0) | 2019.07.21 |
---|---|
[HADOOP] hadoop 클러스터가 동일한 하드웨어에서 실행되어야합니까? (0) | 2019.07.21 |
[HADOOP] 스파크가 다른 사용자로 원사에 제출 (0) | 2019.07.21 |
[HADOOP] Hive는 어떻게 데이터를 저장하고 SerDe는 무엇입니까? (0) | 2019.07.21 |
[HADOOP] java.lang.OutOfMemoryError : 하이브가있는 Java 힙 공간 (0) | 2019.07.21 |