SlideShare a Scribd company logo
1 of 11
Архитектура Apache Spark
Архитектура Apache Spark
Владимир Штанько, Rambler&Co
v.shtanko@rambler-co.ru
Архитектура Apache Spark
Архитектура Apache Spark
Resilient
Distributed
Dataset
rdd1.join(rdd2)
.groupby(...)
.filter(...)
Архитектура Apache Spark
Архитектура Apache Spark
Архитектура Apache Spark
Архитектура Apache Spark
• RDD – низкоуровневый API без оптимизаций
• DataSet – RDD с организацией данных в поименованные колонки
• DataFrame – DataSet[Row]
• Tungsten Execution Backend
Архитектура Apache Spark
Transformations:
.map
.filter
.distinct
.reduceByKey
.union
.intersection
.cartesian
Actions:
.save
.collect
.take
.count
Архитектура Apache Spark
Архитектура Apache Spark
rdd1 = sc.parallelize(["one", "two",
"three", 'five'])
rdd2 = sc.parallelize(["two", "three",
"four", 'five'])
rdd1 = rdd1.map(lambda x: (x, len(x)))
rdd2 = rdd2.map(lambda x: (x, len(x)))
rdd1 = rdd1.filter(lambda x: x[1] > 3)
rdd2 = rdd2.filter(lambda x: x[1] > 3)
rdd1 = rdd1.join(rdd2)
rdd1 = rdd1.filter(lambda x: len(x[0]) > 4)
rdd1.collect()
Архитектура Apache Spark

More Related Content

What's hot

Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав БахмутовCodeFest
 
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Ontico
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Fwdays
 
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...Ontico
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, BadooOntico
 
Apache Kafka and stream processing peculiarities [ru]
Apache Kafka and stream processing peculiarities [ru]Apache Kafka and stream processing peculiarities [ru]
Apache Kafka and stream processing peculiarities [ru]Vsevolod Solovyov
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Ontico
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустяYuriy Nasretdinov
 
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Ontico
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон ТурецкийCodeFest
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Yandex
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooBadoo Development
 
Алексей Федоров
Алексей ФедоровАлексей Федоров
Алексей ФедоровCodeFest
 
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Ontico
 
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...Yehor Herasymchuk
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)Ontico
 
Apache Ignite.NET в действии
Apache Ignite.NET в действииApache Ignite.NET в действии
Apache Ignite.NET в действииMikhail Shcherbakov
 
Drupal 8 и хостинг
Drupal 8 и хостингDrupal 8 и хостинг
Drupal 8 и хостингDrupalSPB
 

What's hot (20)

Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав Бахмутов
 
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, Badoo
 
Apache Kafka and stream processing peculiarities [ru]
Apache Kafka and stream processing peculiarities [ru]Apache Kafka and stream processing peculiarities [ru]
Apache Kafka and stream processing peculiarities [ru]
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
 
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
 
Алексей Федоров
Алексей ФедоровАлексей Федоров
Алексей Федоров
 
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
 
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
 
Apache Ignite.NET в действии
Apache Ignite.NET в действииApache Ignite.NET в действии
Apache Ignite.NET в действии
 
Drupal 8 и хостинг
Drupal 8 и хостингDrupal 8 и хостинг
Drupal 8 и хостинг
 

Similar to Архитектура Apache Spark

Expert Fridays Spark Job
Expert Fridays Spark JobExpert Fridays Spark Job
Expert Fridays Spark JobProvectus
 
Spark overview (18.06.2015)
Spark overview (18.06.2015)Spark overview (18.06.2015)
Spark overview (18.06.2015)bddmoscow
 
14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк Spark14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк SparkRoman Brovko
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 
13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма Spark13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма SparkRoman Brovko
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)Ontico
 
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...Andrey Gershun
 
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
DF1 - BD - Baranov - Mining Large Datasets with Apache SparkDF1 - BD - Baranov - Mining Large Datasets with Apache Spark
DF1 - BD - Baranov - Mining Large Datasets with Apache SparkMoscowDataFest
 
мифы о спарке
мифы о спарке мифы о спарке
мифы о спарке Evgeny Borisov
 
Spark: нетипичные примеры использования
Spark:  нетипичные примеры использованияSpark:  нетипичные примеры использования
Spark: нетипичные примеры использованияfaithlessfriend
 
Apache Spark — Егор Пахомов
Apache Spark — Егор ПахомовApache Spark — Егор Пахомов
Apache Spark — Егор ПахомовYandex
 
Scala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentScala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentAnton Kirillov
 
Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...
Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...
Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...Magneta AI
 
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Ontico
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
 
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )Shamim bhuiyan
 
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...Ontico
 

Similar to Архитектура Apache Spark (20)

Expert Fridays Spark Job
Expert Fridays Spark JobExpert Fridays Spark Job
Expert Fridays Spark Job
 
Spark overview (18.06.2015)
Spark overview (18.06.2015)Spark overview (18.06.2015)
Spark overview (18.06.2015)
 
14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк Spark14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк Spark
 
Apache spark
Apache sparkApache spark
Apache spark
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма Spark13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма Spark
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
 
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
 
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
DF1 - BD - Baranov - Mining Large Datasets with Apache SparkDF1 - BD - Baranov - Mining Large Datasets with Apache Spark
DF1 - BD - Baranov - Mining Large Datasets with Apache Spark
 
мифы о спарке
мифы о спарке мифы о спарке
мифы о спарке
 
Spark: нетипичные примеры использования
Spark:  нетипичные примеры использованияSpark:  нетипичные примеры использования
Spark: нетипичные примеры использования
 
Apache Spark — Егор Пахомов
Apache Spark — Егор ПахомовApache Spark — Егор Пахомов
Apache Spark — Егор Пахомов
 
OpenACC short review
OpenACC short reviewOpenACC short review
OpenACC short review
 
Scala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentScala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application Development
 
Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...
Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...
Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...
 
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
 
Расширение библиотеки Slick
Расширение библиотеки SlickРасширение библиотеки Slick
Расширение библиотеки Slick
 
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
 

Архитектура Apache Spark

Editor's Notes

  1. Всем добрый день, меня зовут Вова Штанько, я – математик-разработчик в компании Рамблер. Сегодня я и мой коллега Костя Колоколов постараемся рассказать вам про то, как поднять свой скилл программирования на Спарк. Для этого мы разбили наш рассказ на две части. Я кратко напомню вам про то, как устроен Спарк. Костя же уделит внимание всяческим «фишкам», ускоряющим работу и «подводным камням», которые стоит обходить.
  2. Вот на этой картинке показана схема работы на Spark. Предположим, у нас есть код, который мы хотим исполнить. Для этого в первую очередь нам нужен драйвер. На драйвере (это процесс, где запускается main() существующий на какой—то машине в сети, пользовательской или не очень), исходя из конфигурации кластера создается SparkContext, который является точкой входа в систему. Через spark context код попадает на Cluster Manager, который может быть разный, например, Yarn, Mezos или standalone. На рабочих нодах запускаются отдельные процессы, которые исполняют код на выделенных им кусках данных. Потом результаты вычислений собираются обратно на драйвер, если есть такая нужда, или сохраняются в HDFS. Я думаю, здесь стоит упомянуть, что Спарк исполняется на JVM со всеми вытекающими последствиями, а именно настройкой JVM на самих нодах и драйвере, настройкой GC для оптимальной работы, а также возможностью использовать такие инструменты как jstack или visualvm для мониторинга, оптимизации и дебага.
  3. Основной абстракцией, или интерфейсом при работе со Спарком является RDD, или resilient distributed dataset. Почему именно так называется? Dataset – это коллекция, которая может содержать в меру произвольные элементы, но одного типа. Distributed говорит о том, что элементы одной RDD могут находиться на разных машинах. Resilient – о том, что каждая RDD содержит информацию о том, как она может быть пересчитана заново из исходных данных, если что-то пойдет не так. Кроме того, у RDD есть еще ряд свойств, которые частично связаны с тем, что Spark использует элементы функциональной парадигмы программирования.
  4. Первая из них - immutability, или неизменяемость РДД. Нельзя внести изменения в существующую РДД – можно только создать новую. Это облегчает пересчет РДД в случае, если что-то пойдет не так.
  5. Второе свойство – lazy evaluation, или отложенные вычисления. Вычисления РДД будут производиться только тогда, когда они понадобятся, и только в том количестве, которое потребуется. Впереди еще будет несколько примеров, поэтому если кто-то не знаком с этим понятием, дальше станет понятнее.
  6. Третье свойство – partitioned, или партицирование. Как уже говорилось ранее, РДД являются распределенными. Партицирование – это принцип их распределения. Он может быть банальным – случайным или по близости к данным, или более хитрым – например RDD имен можен быть партицирован по первой букве имени. Это может помочь оптимизировать скорость вычислений и об этом вам еще подробнее расскажет Костя.
  7. Кроме RDD, современный Спарк (от версии 1.6 и выше) содержит еще два API, более высокоуровневых. Это DataSet и DataFrame. Они доступны из библиотеки SparkSql. Их использование позволяет добиться повышения производительности за счет встроенных оптимизаторов, плюс интерфейс DataFrame пытается максимально эмулировать интерфейс привычных DataFrame из Pandas или R. Как правило, для работы с машинным обучением и аналитикой используются в основном DataFrame. Кроме того, из PySpark в принципе не доступен DataSet.  Когда работа идет со Spark Sql, к процессу старта задачи, который я показывал на одном из первых слайдов, добавляется еще вот этот пайплайн. Здесь происходит трансформация запроса в Sql в RDD, и его оптимизация.
  8. Теперь давайте перейдем к специфике программирования на Спарк. В ней есть две большие разницы: первая разница – это разница между трансформациями и действиями, а вторая – разница между узкими и широкими трансформациями. Про первую. Как проявление парадигмы lazy valuation вычисления в Spark начинаются только тогда, когда непосредственно вызывается какой-либо action. До этого момента мы можем заявить произвольное количество трансформаций, они встанут в условную «очередь», но выполнены не будут.
  9. Shuffle – это перемещение данных между executor’ами. В лучшем случае – это межпроцессная коммуникация, в редком случае когда мы работаем на одной машине. Чаще – это одновременно сетевая и дисковая операция. Она дорогая, поэтому их число необходимо минимизировать, а по возможности – избегать. Вот примеры широких и узких трансформаций. Об оптимизации shuffle вам еще расскажет Костя. А я постараюсь показать вам нагляднее, как все это выглядит с точки зрения исполнения задачи.
  10. Предположим у нас есть вот такой тривиальный код.
  11. Отдельно несколько слов про PySpark.