Förbättra importprestanda

Datarensning med PySpark

Mike Metzger

Data Engineering Consultant

Spark-kluster

Spark-kluster består av två typer av processer

  • Driverprocess
  • Arbetarprocesser
Datarensning med PySpark

Importprestanda

Viktiga parametrar:

  • Antal objekt (filer, nätverksplatser m.m.)
    • Fler mindre objekt är bättre än färre stora
    • Kan importeras med jokertecken
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • Objektens ungefärliga storlek
    • Spark fungerar bättre om objekten är ungefär lika stora
Datarensning med PySpark

Scheman

Ett väldefinierat schema förbättrar importprestandan avsevärt

  • Undviker att data läses flera gånger
  • Validerar data vid import
Datarensning med PySpark

Hur man delar upp objekt

  • Använd OS-verktyg / skript (split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • Använd egna skript
  • Skriv ut till Parquet
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
Datarensning med PySpark

Nu kör vi en övning!

Datarensning med PySpark

Preparing Video For Download...