Я запускаю pyspark в кластере dataproc с 4 узлами, каждый из которых имеет 2 ядра и 8 ГБ ОЗУ. У меня есть фреймворк со столбцом, содержащим список слов. Я взорвал этот столбец и подсчитал количество повторов, используя -
df.groupBy("exploded_col").count()
До взрыва было ~ 78 млн рядов. Но выполнение приведенного выше кода занимает слишком много времени (более 4 часов). Почему искра длится необычно долго? Я все еще новичок в Spark, поэтому не знаю, какие настройки подходят для работы с огромными данными.
У меня есть следующие настройки для sparkContext
enter code here
SparkSession.builder \
.appName("Spark NLP Licensed") \
.master("yarn") \
.config("spark.jars.packages", "com.johnsnowlabs.nlp:spark-nlp_2.11:2.5.1")
spark.conf.set("spark.sql.shuffle.partitions",20)
spark.conf.set("spark.num.executors",100)
spark.conf.set("spark.executor.cores",1)
spark.conf.set("spark.sql.files.ignoreCorruptFiles", "true")
Я даже установил для spark.sql.shuffle.partitions значение 2001, но это тоже не сработало. Пожалуйста помоги.