Вручную укажите количество исполнителей искры

У меня есть 1000 паркетных файлов, и я хочу, чтобы один исполнитель работал над каждым файлом на промежуточном этапе. Есть ли способ, которым мы можем вручную назначить это свойство? По умолчанию искра создает 34 задачи для задания, что в конечном итоге приводит к перекосу.


person PythonBoi    schedule 04.11.2019    source источник
comment
как вы отправляете работу? пожалуйста, поделитесь кодом.   -  person dassum    schedule 04.11.2019
comment
@PythonBoi Я могу предположить, что в этом случае Spark использует spark.default.parallelism, что равно сумме ядер, назначенных задаче. Вы используете API Spark Core (RDD) или Spark SQL (Dataframe/Dataset)? Что такое хранилище (S3/HDFS)? Взгляните на этот ответ: читать"> stackoverflow.com/questions/50825835/   -  person VB_    schedule 04.11.2019


Ответы (1)


Вы можете выполнять repartition на входном DataFrame/RDD и выполнять операции с результирующим DF/RDD.

changedDF = inputDF.repartition(500)

Вместо использования inputDF используйте changedDF для выполнения ваших операций, вы должны получить 500 таксов.

При необходимости в DataFrame вы также можете указать список столбцов для перераспределения changedDF = inputDF.repartition(inputDF.col1)

person Naga    schedule 04.11.2019