Спринт 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 можно вызовом специальной функции.

B_SQL. Задача 1

Спринт 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-файла можно указать формат, наличие заголовка и вывод типов данных.

B_SQL. Задача 1

B_SQL. Задача 2

B_SQL. Задача 3

Спринт 13/24 → Тема 6/9: PySpark → Урок 6/9

Обработка пропущенных значений

B_SQL. Задача 1

B_SQL. Задача 2

Спринт 13/24 → Тема 6/9: PySpark → Урок 7/9

SQL - запросы в датафреймах

B_SQL. Задача 1

B_SQL. Задача 2

Спринт 13/24 → Тема 6/9: PySpark → Урок 8/9

GroupBy в PySpark

B_SQL.13/24.6/9.8/9.Задача 1

B_SQL.13/24.6/9.8/9.Задача 2

Спринт 13/24 → Тема 6/9: PySpark → Урок 9/9

Заключение

Образовательные результаты

Проверьте, удалось ли научиться:

  • преобразовывать данные в RDD;
  • создавать датафреймы в PySpark;
  • писать SQL-запросы в PySpark.

Заберите с собой

Чтобы ничего не забыть, скачайте шпаргалку и конспект темы.