Оптимальный способ передела в Spark - PullRequest
0 голосов
/ 06 августа 2020

У меня есть файл csv размером 500 МБ, который я читаю как фрейм данных. Я ищу оптимальное значение раздела этого фрейма данных. Мне нужно выполнить несколько широких преобразований и присоединить этот фрейм данных к другому CSV, поэтому сейчас у меня есть менее 3 подходов для повторного разделения этого фрейма данных

  1. df.repartition (кол-во ядер)
  2. Повторное разделение фрейма данных согласно расчету 500 МБ / 128 МБ ~ 4 раздела, чтобы иметь как минимум 128 МБ данных в каждом разделе
  3. Повторное разбиение фрейма данных с использованием определенных c столбцов csv для совместного размещения данных в тех же разделах

Я хочу знать, какой из этих вариантов лучше всего подходит для параллельных вычислений и обработки в Spark 2.4

1 Ответ

0 голосов
/ 06 августа 2020

Если вы очень хорошо знаете данные, то лучше всего использовать столбцы для разделения данных. Однако перераспределение на основе либо размера блока, либо количества ядер может изменяться при изменении конфигурации кластера, и для каждой среды вам необходимо внести эти изменения, если конфигурация кластера отличается в более высоких средах. Так что в целом перераспределение, управляемое данными, - лучший подход.

...