복붙노트

[HADOOP] spark.sql.shuffle.partitions와 spark.default.parallelism의 차이점은 무엇입니까?

HADOOP

spark.sql.shuffle.partitions와 spark.default.parallelism의 차이점은 무엇입니까?

spark.sql.shuffle.partitions와 spark.default.parallelism의 차이점은 무엇입니까?

SparkSQL에서 두 가지 모두를 설정하려고 시도했지만 두 번째 스테이지의 작업 번호는 항상 200입니다.

해결법

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

    1.여기에 대한 대답에서 spark.sql.shuffle.partitions는 조인 또는 집계에 대한 데이터를 셔플 링 할 때 사용되는 파티션 수를 구성합니다.

    여기에 대한 대답에서 spark.sql.shuffle.partitions는 조인 또는 집계에 대한 데이터를 셔플 링 할 때 사용되는 파티션 수를 구성합니다.

    spark.default.parallelism은 사용자가 명시 적으로 설정하지 않은 경우 join, reduceByKey 및 parallelize와 같은 변환에서 반환되는 RDD의 기본 파티션 수입니다. spark.default.parallelism은 원시 RDD에서만 작동하는 것으로 보이며 데이터 프레임 작업시 무시됩니다.

    수행중인 작업이 조인 또는 집계가 아니며 데이터 프레임을 사용하여 작업하는 경우 이러한 설정은 아무 효과가 없습니다. 그러나 코드에서 df.repartition (numOfPartitions)을 호출하여 파티션 수를 직접 설정할 수도 있습니다 (새 val에 할당하는 것을 잊지 마십시오).

    코드에서 설정을 변경하려면 다음과 같이하면됩니다.

    sqlContext.setConf("spark.sql.shuffle.partitions", "300")
    sqlContext.setConf("spark.default.parallelism", "300")
    

    또는 spark-submit을 사용하여 작업을 클러스터에 제출할 때 변경할 수 있습니다.

    ./bin/spark-submit --conf spark.sql.shuffle.partitions=300 --conf spark.default.parallelism=300
    
  2. from https://stackoverflow.com/questions/45704156/what-is-the-difference-between-spark-sql-shuffle-partitions-and-spark-default-pa by cc-by-sa and MIT license