Покращте продуктивність імпорту

Очищення даних у 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...