Как работает разбиение на Spark?

Я пытаюсь понять, как разбиение выполняется в Apache Spark. Можете ли вы, ребята, помочь?

Вот сценарий:

  • мастер и два узла с 1 ядром каждый
  • файл count.txt размером 10 МБ

Сколько разделов создают следующие файлы?

rdd = sc.textFile(count.txt)

Значит ли размер файла влияет на количество разделов?

Ответы

Ответ 1

По умолчанию раздел создается для каждого раздела HDFS, который по умолчанию составляет 64 МБ (из Руководство по программированию искры).

Можно передать еще один параметр defaultMinPartitions, который переопределяет минимальное количество создаваемых искривлений. Если вы не переопределите это значение, тогда искра создаст как минимум столько разделов, сколько spark.default.parallelism.

Так как spark.default.parallelism должно быть числом ядер на всех компьютерах вашего кластера, я считаю, что в вашем случае будет создано как минимум 3 раздела.

Вы также можете repartition или coalesce RDD изменить количество разделов, что, в свою очередь, влияет на общее количество доступных parallelism.