apache spark - JDBC를 통해 RDBMS에서 읽는 동안 스파크 파티셔닝



apache-spark apache-spark-sql (1)

클러스터 모드에서 스파크를 실행하고 JDBC를 통해 RDBMS에서 데이터를 읽습니다.

Spark docs 따라 이러한 파티션 매개 변수는 여러 작업자가 동시에 읽을 때 테이블을 분할하는 방법을 설명합니다.

  • partitionColumn
  • lowerBound
  • upperBound
  • numPartitions

이들은 선택적 매개 변수입니다.

내가 이것들을 지정하지 않으면 어떻게 될까?

  • 1 명의 근로자 만 전체 데이터를 읽었습니까?
  • 여전히 병렬로 읽으면 데이터를 어떻게 분할합니까?

{ partitionColumn , lowerBound , upperBound , numPartitions } 또는 { predicates }를 지정하지 않으면 Spark는 단일 실행 프로그램을 사용하여 비어 있지 않은 단일 파티션을 만듭니다. 모든 데이터는 단일 트랜잭션을 사용하여 처리되며 읽기는 분산되거나 병렬화되지 않습니다.

참조 :

  • JDBC 소스에서 데이터를 마이그레이션 할 때 파티셔닝을 최적화하는 방법은 무엇입니까?
  • DataFrame 및 JDBC 연결을 사용하여 느린 Spark 작업의 성능을 향상시키는 방법은 무엇입니까?




partitioning