How to efficiently re-partition Spark DataFrames -번역

Spark DataFrames를 효율적으로 다시 파티션하는 방법

스파크 데이터 프레임의 수를 늘리거나 줄이는 방법

Photo by Mae Mu on Unsplash

Apache Spark는 합리적인 시간에 엄청난 양의 데이터를 사용할 수있는 프레임 워크입니다.이 통합 엔진의 효율성은 데이터 컬렉션을 통해 수행 된 작업을 배포하고 평행하는 기능에 대단히 의존합니다.

이 기사에서는 스파크로 파티션을 도입하고 데이터 프레임을 다시 파티션하는 방법을 설명합니다.또한 실행 시간을 최대한 많이 최적화하기 위해 스파크 데이터 프레임의 파티션 수를 증가 시키거나 감소시킬 가치가있는 경우에도 논의 할 것입니다.

간단한 분할 분할

순서대로 순서대로 높은 병렬 처리를 달성하기 위해 스파크는 스파크 클러스터의 다른 노드에 분산 된 파티션이라는 파티션이라는 작은 청크로 데이터를 분리합니다.모든 노드는 두 가지 이상의 실행 프로그램이 작업을 실행할 수 있습니다.

여러 실행 업체에 대한 작업 분포는 특정 작업에 대한 데이터 처리를 최적화하기 위해 데이터 처리를 병렬로 수행 할 수 있도록 데이터를 병렬로 수행 할 수 있도록 데이터를 병렬로 수행 할 수 있습니다.

현재 파티션 수를 얻는 방법

다시 파티셔닝으로 점프하기 전에 스파크 데이터 프레임의 현재 파티션 수를 얻는 데 사용할 수있는 방법을 설명 할 가치가 있습니다.예를 들어, 우리가 다음과 같은 최소한의 점화 데이터를 가지고 있다고 가정 해 봅시다.

위의 데이터 프레임의 파티션 수를 얻으려면 다음을 수행해야합니다.

출력은 현재 설정 및 구성에 의존하여 다른 출력을 볼 수 있습니다.

파티션 수를 늘리는 방법

데이터 프레임의 파티션을 늘리려면 다음을 수행해야합니다.재진입 ()함수.

새로운 것을 반환합니다데이터 프레임지정된 분할 식별로 분할됩니다.결과 데이터 프레임은 해시 분할됩니다.

아래 코드는 파티션 수를 1000으로 증가시킵니다.

파티션 수를 줄이는 방법

이제 파티션이 줄어들 수 있도록 Spark DataFrame을 다시 확인하려면 여전히 사용할 수 있습니다.재진입 ()하나,그렇게 할 수있는보다 효율적인 방법이 있습니다.

합병 ()좁은 의존성이 좁아 지므로 파티션 수를 줄이는 데 사용될 때는셔플 없음,아마도 아마도 스파크에서 가장 비용이 많이 드는 작업 중 하나 일 것입니다.

새로운 것을 반환합니다데이터 프레임그건 정확히 n 개의 파티션이 있습니다.

아래 예에서 우리는 파티션을 100으로 제한합니다. 원래 1000 개의 파티션이있는 Spark DataFrame은 셔플없이 100 개의 파티션으로 해결됩니다.우리는 그것을 의미하지 않습니다각 100 개의 새로운 파티션이 10 개의 기존 파티션에 할당됩니다.…에그러므로 그것은 더 효율적으로 전화하는 것이 더 효율적입니다합병 ()하나가 Spark DataFrame의 파티션 수를 줄이려면.

결론

이 기사에서는 스파크 클러스터의 실행 업체에 작업을 수행 할 수있는 파티션을 통해 데이터 처리가 어떻게 최적화되는지 논의했습니다.또한 데이터 프레임의 파티션 수를 늘리거나 줄이기 위해 사용할 수있는 두 가지 가능한 방법을 탐색했습니다.

재진입 ()Spark DataFrame의 파티션 수를 증가 또는 감소시키는 데 사용할 수 있습니다.하나,재진입 ()비용이 많이 드는 작업 인 셔플 링이 포함됩니다.

다른 한편으로,합병 ()이 메소드가 스파크 클러스터의 노드를 가로 질러 데이터를 섞지 않을 것이라는 사실 때문에이 방법으로 인해 파티션 수를 줄이려면 사용할 수 있습니다.

Leave a Comment