В чем разница между элементом и разделом в Spark? - PullRequest
1 голос
/ 07 мая 2020

Я пробовал погуглить, но не нашел ответа.

Взято из Apache Spark: map vs mapPartitions?

В чем разница между картой RDD и mapPartitions

map выполняет функцию, используемую на уровне элемента , в то время как mapPartitions выполняет функцию на уровне раздела .

В этом контексте, что такое уровень элемента? Это просто отдельная строка?

1 Ответ

4 голосов
/ 07 мая 2020

Проще говоря, у вас есть полка с 10 стойками и 100 мячей, как показано на картинке. Вы будете настраивать 10 мячей в 1 стойке, как и положено .. 100 мячей в 10 стойках. это balldata.repartition(10) ... таким образом, равномерно распределенные данные (скорее, размещение всех 100 в одной или двух стойках)

Теперь вместо применения любых logi c к каждому шару ( элемент или row ), вы собираетесь применить logi c к каждой стойке (разделу) один раз. - это разница.

В этом случае элемент - это мяч (одна строка), а раздел - это стойка.

Преимущество будет, если вы выполняете тяжелую инициализацию, такую ​​как открытие соединений с базой данных и т. д. c ... для вашей обработки logi c ... вы откроете одно соединение для каждого раздела (Rack :-)), чтобы применить ваш logi c, а не открывать соединение с базой данных для каждого элемента (Ball :-))

Советую go с помощью примеров, приведенных там, чтобы лучше понять

enter image description here

любезно / кредиты для изображения здесь

...