Повышение производительности импорта

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

Mike Metzger

Data Engineering Consultant

Кластеры Spark

Кластеры Spark состоят из двух типов процессов

  • Процесс-драйвер
  • Процессы-воркеры
Очистка данных с помощью PySpark

Производительность импорта

Важные параметры:

  • Количество объектов (файлы, сетевые адреса и др.)
    • Лучше больше мелких объектов, чем один крупный
    • Поддерживается импорт через маску
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • Общий размер объектов
    • Spark работает эффективнее, если объекты одинакового размера
Очистка данных с помощью PySpark

Схемы

Чётко заданная схема значительно ускоряет импорт

  • Исключает многократное чтение данных
  • Обеспечивает валидацию при импорте
Очистка данных с помощью PySpark

Разбивка объектов

  • Используйте утилиты ОС / скрипты (split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • Используйте собственные скрипты
  • Запишите данные в Parquet
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
Очистка данных с помощью PySpark

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

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

Preparing Video For Download...