Я использую версию spark 2.1.1.и когда я читаю файл в DataFrame и перераспределяю его позже, журналы исполнителя появляются только у одного исполнителя.
Фактический файл имеет только один раздел.Я делю это на 6 разделов.
val df = spark.read.load(<file location>)
val repartitionedDF = df.repartition(6)
У меня 10 рабочих узлов и выделено 6 ядер для приложения spark.Всего у меня 6 исполнителей на 6 машинах.Я делаю некоторый процесс, используя foreachPartition, и веду журнал на некоторых из необходимых шагов.
пример кода.
repartitionedDF.foreachPartition(partition =>
{
logger.info("working on partition " + partition.length)
<some code>
}
)
Когда я проверил пользовательский интерфейс spark, все журналы появляются только в одном исполнителе, а остальные исполнители не имеют никаких журналов исполнителей информации.
Если я создаю DF, используя список, то журналы появляются на всей машине.Я не мог подтвердить, что работа была разделена между всеми исполнителями или журналирование просто публикуется с окончательным разделом.
Для приведенного ниже кода я мог видеть информацию журнала всех исполнителей в spark UI
val newDF = List(1,2,3,4,5,6).toDF
val partitionedDF2 = newDF.repartition(6)
partitionedDF2.foreachPartition(part => logger.info("part size " + part.length))