Неизменяемость и отложенные вычисления

Очистка данных с помощью PySpark

Mike Metzger

Data Engineering Consultant

Обзор переменных

Переменные Python:

  • Изменяемые
  • Гибкость
  • Возможные проблемы с параллелизмом
  • Усложняют код
Очистка данных с помощью PySpark

Неизменяемость

Неизменяемые переменные:

  • Элемент функционального программирования
  • Определяются один раз
  • Не могут быть изменены напрямую
  • Пересоздаются при переприсваивании
  • Допускают эффективное совместное использование
Очистка данных с помощью PySpark

Пример неизменяемости

Создание нового датафрейма:

voter_df = spark.read.csv('voterdata.csv')

Внесение изменений:

voter_df = voter_df.withColumn('fullyear', 
    voter_df.year + 2000)

voter_df = voter_df.drop(voter_df.year)
Очистка данных с помощью PySpark

Отложенные вычисления

  • Разве это не медленно?
  • Преобразования
  • Действия
  • Позволяет эффективно планировать выполнение
voter_df = voter_df.withColumn('fullyear', 
    voter_df.year + 2000)
voter_df = voter_df.drop(voter_df.year)

voter_df.count()
Очистка данных с помощью PySpark

Давайте потренируемся!

Очистка данных с помощью PySpark

Preparing Video For Download...