2016-12-06 2 views
0

Мне интересно, если я должен установить номера разделов, как только преобразование имеет параметр numPartitions. Например, когда я создаю первый RDD в своем коде, я устанавливаю номер раздела. Если я создам другое RDD, будет ли номер раздела по умолчанию одинаковым с первым RDD?Нужно ли устанавливать номер раздела повсюду? spark

+0

Depends является следующим рддом преобразования старого РДДА? Если да, то в основном. Если это новый rdd, который вы формируете из данных, применяется искровой внутренний алгоритм. –

+0

Хорошо, я понимаю. Спасибо! – volity

+0

Одна из ситуаций, когда число разделов может меняться (во время преобразований) при использовании операций тасования. Вы можете [настроить настройку] (https://spark.apache.org/docs/1.6.0/sql-programming-guide.html#other-configuration-options). –

ответ

1

По умолчанию искра позаботится о разделении набора данных на разделы. Будут также выполняться все операции, выполняемые над начальным.

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

Другой сценарий - когда вы выполняете фильтрацию. Внутренне те же разделы будут поддерживаться при выполнении фильтра, даже если большая часть записей отфильтровывается. Это приводит к полым перегородкам. Поэтому в этом случае вы можете объединиться. Этот метод принимает numOfPartitions.

Существует также метод rePartition(), который принимает numOfPartitions в качестве входных данных. Это связано с перестановкой. Вы можете найти их here

Таким образом, вы можете выбрать в соответствии с вашими потребностями

Смежные вопросы