# Apache Spark в мире BigData Вводный курс --- ## Outline --- * Лекция 1. * Вводная часть * Что будет, чего не будет * Проблематика BigData * HDFS * MapReduce * Spark: основные определения * RDD * Действия * Преобразования --- * Семинар 1. * SparkCore, движущиеся части и абстракции * Hello world --- * Лекция 2. * SparkSQL * Семинар 2. * Знакомство с API SparkSQL --- * Лекция и семинар 3. * Spark Streaming: обработка потоковых данных * DStreams * Structured Streaming --- * Лекция и семинар 4. * Машинное обучение на Spark --- * Лекция 5. * Практические вопросы * Питонопроблемы: как жить в аду зависимостей * Кластерные менеджеры * Распределенный консенсус * Multi-tenancy --- * Семинар 5. Практические моменты * Live-demo кластер --- Disclaimer --- ![](https://i.imgur.com/AsJVdGh.jpg) --- Бэкграунд * 3 года со Spark, работа с данными интернета: * краулер * логи * машинное обучение (no MLLib) * on-premises deployment * большой фанат * Python 90/10 Scala * по-прежнему большой фанат --- ## Проблематика BigData Volume Velocity Variety --- #### Volume ![](https://i.imgur.com/j8PhQHT.png) --- #### Volume ![](https://i.imgur.com/PRyEHz7.png) --- #### Velocity ![](https://i.imgur.com/lACuuVr.jpg =480x) --- #### Variety {%youtube N9fDIAflCMY %} --- ## Сортировка ![](https://i.imgur.com/PRyEHz7.png) --- #### Как обойти ограничения по памяти при сортировке? --- #### Подсказка: merge sort ![](https://i.imgur.com/pXmz15j.png)<!-- .element: class="fragment" data-fragment-index="1" --> --- #### Что если данные не помещаются на один диск? На один сервер? --- ![](https://i.imgur.com/IhngrEj.png =480x) --- ## MapReduce ![](https://i.imgur.com/oge2MLD.png) --- ## Знакомые задачи на MapReduce SQL: * SELECT * SELECT WHERE * SELECT avg() * JOIN * GROUP BY --- ## Знакомые задачи на MapReduce Matrix multiplication! --- ## Знакомые задачи на MapReduce Задачи на графах --- ![](https://i.imgur.com/53MhEj9.png) --- # RDD Resilient Distributed Dataset --- Преобразования (*Transformations*) * применить указанную функцию к каждому элементу раздела (`map`, `flatMap`) или ко всему разделу (`mapPartitions`) * сагрегировать датасет (`groupBy`, `sortBy`) * связать несколько RDD (`union`, `join`) * изменить способ деления RDD (`repartition`, `partitionBy`) --- Действия (*Actions*) * запускают задачу * используютая для материализации результатов (файлы, таблицы, объекты в памяти) ---
{"metaMigratedAt":"2023-06-15T07:06:21.776Z","metaMigratedFrom":"YAML","title":"Apache Spark в мире BigData","breaks":true,"robots":"noindex, nofollow","slideOptions":"{\"transitionSpeed\":\"fast\",\"transition\":\"slide\",\"theme\":\"white\",\"controls\":true,\"center\":true,\"loop\":true}","contributors":"[{\"id\":\"27faaaab-43e3-4c62-b56d-ed37e351a960\",\"add\":2983,\"del\":200}]"}
    172 views