Спринт 13/24 → Тема 6/9: PySpark → Урок 1/9
Кратко
С инструментом хранения данных вы познакомились. Пора научиться обрабатывать данные. В этом поможет фреймворк Spark (англ. «искра»).
Спринт 13/24 → Тема 6/9: PySpark → Урок 2/9
Кратко:
- Распределенные системы используются для вычислений в Spark, когда объем данных растет и один компьютер не справляется.
- Распределенные системы хранят файлы с данными на нескольких компьютерах и обеспечивают доступ к данным.
- Распределенная система состоит из нескольких узлов: мастер-узла (Name Node) и узлов данных (Data Node).
- Мастер-узел распределяет файлы между компьютерами в кластере, а узлы данных содержат и обрабатывают данные.
- Для хранения и обработки больших объемов данных совершенствуют узлы двумя способами: повышением производительности или увеличением количества узлов.
- Вертикальное масштабирование (scale up) - повышение производительности узлов, а горизонтальное масштабирование (scale out) - увеличение количества узлов в кластере.
- Горизонтальное масштабирование обеспечивает параллельную обработку данных, что помогает быстрее масштабироваться.
Спринт 13/24 → Тема 6/9: PySpark → Урок 3/9
Кратко:
- Spark - фреймворк для распределенных вычислений с открытым исходным кодом, изначально написан на языке Scala.
- Spark позволяет распределять и обрабатывать данные на нескольких компьютерах одновременно.
- SparkContext - объект, отвечающий за операции с кластером в Spark, его можно инициализировать и передавать настройки.
- Функция sc.parallelize() позволяет перевести список в RDD.
- Создадим RDD с именем taxi_entry, передав функции список с данными.
- Напечатаем RDD на экране, получим параллельную коллекцию RDD.
- Извлечь содержимое параллельной коллекции RDD можно вызовом специальной функции.
Спринт 13/24 → Тема 6/9: PySpark → Урок 4/9
Кратко:
- Датафрейм в PySpark - это таблица, строки которой хранятся в RDD.
- Работа с датафреймами ведётся по принципу «ленивых вычислений».
- Для работы с распределённой файловой системой нужен специальный интерфейс передачи данных - DataFrame API.
- SQL-запрос можно написать в командной строке этого модуля, то есть без импорта из библиотеки.
- Создадим объект SparkSession вызовом функции getOrCreate().
Спринт 13/24 → Тема 6/9: PySpark → Урок 5/9
Кратко:
- Создание датафреймов в PySpark из Pandas
- Датафреймы в PySpark состоят из строк, содержащих имена столбцов и их значения
- Функция createDataFrame() переводит датафрейм из Pandas в PySpark
- Типы столбцов в датафрейме: дата - строка, минута - целое число
- Метод take() извлекает данные из датафрейма
- Избавиться от отображения прогресса можно, установив showConsoleProgress = false
- Для загрузки датафрейма из csv-файла используется атрибут read и функция load()
- При загрузке csv-файла можно указать формат, наличие заголовка и вывод типов данных.
Спринт 13/24 → Тема 6/9: PySpark → Урок 6/9
Обработка пропущенных значений
Спринт 13/24 → Тема 6/9: PySpark → Урок 7/9
SQL - запросы в датафреймах
Спринт 13/24 → Тема 6/9: PySpark → Урок 8/9
GroupBy в PySpark
Спринт 13/24 → Тема 6/9: PySpark → Урок 9/9
Заключение