@ -6,7 +6,7 @@ Apache Spark — программный каркас с открытым исх
В папке с заданием содержатся следующие наборы данных:
- книга (warandpeace.txt),
- https://databank.illinois.edu/datasets/IDB-9610843 данные о такси Нью-Йорка за 2013 год (nyctaxi.csv),
- https://databank.illinois.edu/datasets/IDB-9610843 данные о такси Нью-Йорка за 2013 год (nycTaxiRides.gz),
- https://www.kaggle.com/benhamner/sf-bay-area-bike-share данные велопарковок Сан-Франциско (trips.csv, stations.csv).
# Цель работы
@ -235,13 +235,15 @@ a.intersection(b).collect
a.subtract(b).collect
```
*Примечание.* При запуске collect на центральный узел $-$ driver передаются все данные из распределённого RDD. При работе с большим объемом данных выполнение данной команды может заполнить всю оперативную память driver узла.
*Примечание.* При запуске collect на центральный узел - driver передаются все данные из распределённого RDD. При работе с большим объемом данных выполнение данной команды может заполнить всю оперативную память driver узла.
*Упражнение.* Найдите в исходном коде Spark определение функции distinct. Объясните почему реализация этой операции действительно убирает дубликаты.
Общие переменные
В Apache Spark общими переменными являются широковещательные (broadcast) переменные и аккумулирующие (accumulator) переменные.
Широковещательные переменные
## Общие переменные
В Apache Spark общими переменными являются широковещательные (**broadcast**) переменные и аккумулирующие (**accumulator**) переменные.
### Широковещательные переменные
Общие переменные удобны если вы обращаетесь к небольшому объёму данных на всех узлах. Например, это могут быть параметры алгоритмов обработки, небольшие матрицы.
@ -257,7 +259,7 @@ val broadcastVar = sc.broadcast(Array(1,2,3))
broadcastVar.value
```
## Аккумулирующие переменные
### Аккумулирующие переменные
Аккумулирующие переменные являются объектами, которые могут быть изменены только ассоциативной операцией добавления. Они используются для эффективной реализации счётчиков и суммарных значений. Вы можете также использовать свой тип, над котором определена ассоциативная операция при необходимости.
@ -313,10 +315,10 @@ pair._2
В первую очередь будет необходимо загрузить данные в MapR-FS. Создайте новую папку в MapR-FS:
Создайте RDD на основе загруженных данных nyctaxi.csv:
Создайте RDD на основе загруженных данных nycTaxiRides.gz: