@ -6,7 +6,7 @@ Apache Spark — программный каркас с открытым исх
В папке с заданием содержатся следующие наборы данных:
В папке с заданием содержатся следующие наборы данных:
- книга (warandpeace.txt),
- книга (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).
- 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
a.subtract(b).collect
```
```
*Примечание.* При запуске collect на центральный узел $-$ driver передаются все данные из распределённого RDD. При работе с большим объемом данных выполнение данной команды может заполнить всю оперативную память driver узла.
*Примечание.* При запуске collect на центральный узел - driver передаются все данные из распределённого RDD. При работе с большим объемом данных выполнение данной команды может заполнить всю оперативную память driver узла.
*Упражнение.* Найдите в исходном коде Spark определение функции distinct. Объясните почему реализация этой операции действительно убирает дубликаты.
*Упражнение.* Найдите в исходном коде Spark определение функции distinct. Объясните почему реализация этой операции действительно убирает дубликаты.
Общие переменные
В Apache Spark общими переменными являются широковещательные (broadcast) переменные и аккумулирующие (accumulator) переменные.
## Общие переменные
Широковещательные переменные
В Apache Spark общими переменными являются широковещательные (**broadcast**) переменные и аккумулирующие (**accumulator**) переменные.
### Широковещательные переменные
Общие переменные удобны если вы обращаетесь к небольшому объёму данных на всех узлах. Например, это могут быть параметры алгоритмов обработки, небольшие матрицы.
Общие переменные удобны если вы обращаетесь к небольшому объёму данных на всех узлах. Например, это могут быть параметры алгоритмов обработки, небольшие матрицы.
@ -257,7 +259,7 @@ val broadcastVar = sc.broadcast(Array(1,2,3))
broadcastVar.value
broadcastVar.value
```
```
## Аккумулирующие переменные
### Аккумулирующие переменные
Аккумулирующие переменные являются объектами, которые могут быть изменены только ассоциативной операцией добавления. Они используются для эффективной реализации счётчиков и суммарных значений. Вы можете также использовать свой тип, над котором определена ассоциативная операция при необходимости.
Аккумулирующие переменные являются объектами, которые могут быть изменены только ассоциативной операцией добавления. Они используются для эффективной реализации счётчиков и суммарных значений. Вы можете также использовать свой тип, над котором определена ассоциативная операция при необходимости.
@ -313,10 +315,10 @@ pair._2
В первую очередь будет необходимо загрузить данные в MapR-FS. Создайте новую папку в MapR-FS:
В первую очередь будет необходимо загрузить данные в MapR-FS. Создайте новую папку в MapR-FS:
Создайте RDD на основе загруженных данных nyctaxi.csv:
Создайте RDD на основе загруженных данных nycTaxiRides.gz: