4. Автоматизация МО - 30.09.2024 - Apache Spark - 1 часть

preview_player
Показать описание
00:01 Введение в Apache Spark

• Apache Spark - это быстрая распределенная вычислительная платформа.
• Платформа сохраняет промежуточные расчеты в оперативной памяти.
• Spark придерживается концепции ленивых вычислений, что позволяет избежать нагрузки на систему до вызова функции Action.

02:02 Многофункциональность и модель программирования

• Spark поддерживает различные виды вычислений, включая batch, stream и interactive.
• Платформа использует концепцию не-бай, где данные обрабатываются партиями.
• Spark позволяет использовать высокоуровневые языки программирования, такие как Scala, Java, Python и R.

04:17 Локальная установка и ядро Spark

• Spark можно развернуть локально и в облаке.
• Ядро Spark включает фреймворк для выполнения работы и управления ресурсами.
• Spark поддерживает Kubernetes и другие облачные платформы.

05:27 Расширения и интеграция

• Spark имеет различные расширения, такие как Spark SQL и Streaming.
• Spark интегрируется с множеством источников данных, включая HDFS, базы данных и облачные решения.
• Платформа поддерживает работу с графовыми данными и обучение моделей.

22:30 Архитектура и запуск приложений

• Запуск приложения Spark включает обращение к YARN для выделения ресурсов.
• Application Master координирует выполнение приложения и управляет исполнителями.
• Executor и Driver обмениваются данными и координируют работу.

35:48 Работа с очередями и ресурсами

• Приложение может работать с очередями, которые могут быть жесткими или гибкими.
• В первом случае ресурсы блокируются до завершения расчета, во втором - ресурсы освобождаются при записи данных.
• При записи данных приложение может потерять кэш, что приведет к необходимости пересчета данных.

38:10 Ядро Spark

• Spark написан на Scala и обеспечивает распределенные вычисления.
• Он работает с блоками данных, что позволяет не нагружать оперативную память.
• Spark может обрабатывать большие объемы данных, что делает его эффективным для работы с большими данными.

40:55 Запуск Spark

• Spark можно запускать локально или в кластере, например, на Google Colab.
• В Google Colab роль HDFS выполняет окружение Google Colab.
• Spark контекст содержит настройки и конфигурацию для запуска приложений.

45:53 Работа с RDD

• RDD представляет собой распределенную коллекцию данных.
• Данные в RDD могут быть восстановлены при потере на любом шаге.
• RDD поддерживает концепцию ленивых вычислений, что позволяет не обрабатывать данные до запроса.

50:39 Чтение и запись данных

• Spark читает данные параллельно, записывая каждую партию в отдельный файл.
• Для изменения количества партиций используется метод repartition.
• RDD можно записать в файл, который затем читается и обрабатывается.

54:26 Преобразования и действия

• Преобразования в Spark выполняются лениво, создавая новый RDD.
• Граф преобразований формируется до выполнения действия, которое возвращает результат клиенту.
• На практике преобразования запускаются только после вызова функции Action.

55:22 Работа с RDD и фильтрация данных

• Создание RDD и распределение данных на экторы.
• Фильтрация данных по остатку от деления на два.
• Запуск функции Action для запуска вычислений.

56:18 Ленивая обработка данных в Spark

• Spark читает данные из ближайшей партиции.
• Порядок чтения данных не имеет значения.
• Количество трансформаций не влияет на вычисления.

57:51 Функция Collect и её особенности

• Функция Collect собирает данные с экторов и отправляет их на драйвер.
• Важно учитывать ресурсы драйвера при вызове Collect.
• Collect возвращает список значений для дальнейшей обработки.

01:00:12 Анализ данных и использование метода distributed

• Spark читает данные блоками и преобразует их.
• Метод distributed позволяет читать данные из всех партиций.
• Пример использования метода для анализа данных.

01:01:45 Преобразование и фильтрация данных

• Чтение файла и преобразование данных с помощью функции.
• Фильтрация данных с помощью функции where.
• Пример разделения строки по знаку табуляции.

01:03:54 Использование метода map для обработки данных

• Метод map позволяет обрабатывать данные в Spark.
• Пример подсчета слов в тексте.
• Преобразование данных в RDD и применение функций.

01:05:07 Последовательность трансформаций записывается в граф RDD

• Spark может восстанавливать данные с ближайшей точки падения.
• Пример перемещения данных на партиции.

01:06:50 Узкие и широкие трансформации

• Узкие трансформации не требуют shuffle.
• Широкие трансформации требуют shuffle для объединения данных.
• Пример выполнения задания в Spark.

01:08:29 Выполнение задач и использование ядер

• Spark делит задание на стадии и задачи.
• Каждая задача выполняется на отдельном ядре.
• Пример обработки данных на нескольких ядрах.

01:11:56 Методы groupBy и reduceBy для агрегации данных

• groupBy перекидывает все строки с одинаковым ключом.
• reduceBy подходит для расчета суммы, но не для среднего или медианного значения.

01:14:01 Обсуждение отличий между groupBy и reduceBy
Рекомендации по теме