Знакомство с Parquet

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

Mike Metzger

Data Engineering Consultant

Проблемы с CSV-файлами

  • Схема не определена
  • Вложенные данные требуют особой обработки
  • Ограниченный формат кодирования
Очистка данных с помощью PySpark

Spark и CSV-файлы

  • Медленный разбор
  • Файлы нельзя фильтровать (нет «predicate pushdown»)
  • Любое промежуточное использование требует переопределения схемы
Очистка данных с помощью PySpark

Формат Parquet

  • Столбцовый формат данных
  • Поддерживается в Spark и других фреймворках обработки данных
  • Поддерживает predicate pushdown
  • Автоматически сохраняет информацию о схеме
Очистка данных с помощью PySpark

Работа с Parquet

Чтение файлов Parquet

df = spark.read.format('parquet').load('filename.parquet')
df = spark.read.parquet('filename.parquet')

Запись файлов Parquet

df.write.format('parquet').save('filename.parquet')
df.write.parquet('filename.parquet')
Очистка данных с помощью PySpark

Parquet и SQL

Parquet как хранилище для операций SparkSQL

flight_df = spark.read.parquet('flights.parquet')
flight_df.createOrReplaceTempView('flights')
short_flights_df = spark.sql('SELECT * FROM flights WHERE flightduration < 100')
Очистка данных с помощью PySpark

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

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

Preparing Video For Download...