From 718bdcb6669db8e971495f543bd20b54ad04ab8b Mon Sep 17 00:00:00 2001 From: Vladimir Protsenko Date: Tue, 21 Sep 2021 09:24:59 +0000 Subject: [PATCH] Update L1_Apache_Spark.md --- .../L1_Apache_Spark.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/L1 - Introduction to Apache Spark/L1_Apache_Spark.md b/L1 - Introduction to Apache Spark/L1_Apache_Spark.md index 8c7d1de..15bd9ff 100644 --- a/L1 - Introduction to Apache Spark/L1_Apache_Spark.md +++ b/L1 - Introduction to Apache Spark/L1_Apache_Spark.md @@ -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: ```scala -val taxi = sc.textFile("nyctaxi.csv") +val taxi = sc.textFile("nycTaxiRides.gz") ``` Выведите первые 5 строк из данной таблицы: