Poprawa wydajności importu

Czyszczenie danych w PySpark

Mike Metzger

Data Engineering Consultant

Klastry Spark

Klastry Spark składają się z dwóch typów procesów

  • Proces sterownika
  • Procesy robocze
Czyszczenie danych w PySpark

Wydajność importu

Ważne parametry:

  • Liczba obiektów (pliki, lokalizacje sieciowe itp.)
    • Więcej mniejszych obiektów jest lepsze
    • Możliwy import z użyciem wieloznacznika
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • Ogólny rozmiar obiektów
    • Spark działa lepiej, gdy obiekty mają podobny rozmiar
Czyszczenie danych w PySpark

Schematy

Dobrze zdefiniowany schemat znacznie poprawia wydajność importu

  • Pozwala uniknąć wielokrotnego odczytu danych
  • Umożliwia walidację podczas importu
Czyszczenie danych w PySpark

Jak dzielić obiekty

  • Użycie narzędzi systemowych (split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • Użycie własnych skryptów
  • Zapis do formatu Parquet
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
Czyszczenie danych w PySpark

Czas na ćwiczenia!

Czyszczenie danych w PySpark

Preparing Video For Download...