Розуміння 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...