복붙노트

[HADOOP] Spark RDD에서 빈 파티션을 제거하십시오.

HADOOP

Spark RDD에서 빈 파티션을 제거하십시오.

HDFS에서 데이터를 가져 와서 Spark RDD에 저장하고 있습니다. Spark은 HDFS 블록의 수를 기반으로 파티션 수를 만듭니다. 이로 인해 배관 중에 처리되는 많은 수의 빈 파티션이 생깁니다. 이 오버 헤드를 제거하기 위해 RDD에서 모든 빈 파티션을 필터링하려고합니다. 병합 및 재분할을 알고 있지만 모든 빈 파티션이 제거된다는 보장은 없습니다.

이 문제를 해결할 다른 방법이 있습니까?

해결법

  1. ==============================

    1.빈 파티션을 RDD에서 간단하게 삭제하는 쉬운 방법은 없습니다.

    빈 파티션을 RDD에서 간단하게 삭제하는 쉬운 방법은 없습니다.

    병합하면 빈 파티션이 삭제된다는 보장은 없습니다. 빈 파티션 40 개와 데이터가있는 10 개의 파티션이있는 RDD가있는 경우 rdd.coalesce (45) 다음에 빈 파티션이 남아 있습니다.

    파티션 재분할 방법은 데이터를 모든 파티션에서 균등하게 분할하므로 빈 파티션이 없습니다. 빈 파티션이 50 개인 RDD가 있고 데이터가있는 파티션이 10 개인 rdd.repartition (20)을 실행하면 데이터가 20 개의 파티션으로 균등하게 분할됩니다.

  2. from https://stackoverflow.com/questions/33277567/remove-empty-partitions-from-spark-rdd by cc-by-sa and MIT license