2017-08-16 49 views

Odpowiedz

7

Z odpowiedzi here, spark.sql.shuffle.partitions konfiguruje liczbę partycji, które są używane podczas tasowania danych dla przyłącza lub agregacje.

spark.default.parallelism jest domyślną liczbę partycji w RDD y zwracane przez transformacje jak join, reduceByKey i parallelize gdy nie jawnie ustawione przez użytkownika. Zauważ, że spark.default.parallelism wydaje się działać tylko dla surowego RDD i jest ignorowany podczas pracy z ramkami danych.

Jeśli wykonywane zadanie nie jest łączeniem lub agregacją, a użytkownik pracuje z ramkami danych, ustawienie tych wartości nie będzie miało żadnego efektu. Można jednak ustawić liczbę partycji samodzielnie, dzwoniąc pod numer df.repartition(numOfPartitions) (nie zapomnij przydzielić go do nowego val) w swoim kodzie.


Aby zmienić ustawienia w kodzie można po prostu zrobić:

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

Alternatywnie, można dokonać zmiany Składając ofertę do klastra z spark-submit:

./bin/spark-submit --conf spark.sql.shuffle.partitions=300 --conf spark.default.parallelism=300