Zlepšení výkonu importu

Cleaning Data with PySpark

Mike Metzger

Data Engineering Consultant

Spark clustery

Spark Clusters se skládají ze dvou typů procesů

  • Proces ovladače
  • Pracovní procesy
Cleaning Data with PySpark

Výkon importu

Důležité parametry:

  • Počet objektů (soubory, síťová umístění atd.)
    • Více menších objektů je lepší než méně velkých
    • Import pomocí zástupného znaku
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • Obecná velikost objektů
    • Spark funguje lépe, pokud mají objekty podobnou velikost
Cleaning Data with PySpark

Schémata

Dobře definované schéma výrazně zlepší výkon importu

  • Zabraňuje opakovanému čtení dat
  • Zajišťuje validaci při importu
Cleaning Data with PySpark

Jak rozdělit objekty

  • Použití nástrojů OS / skriptů (split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • Použití vlastních skriptů
  • Zápis do formátu Parquet
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
Cleaning Data with PySpark

Pojďme si procvičit!

Cleaning Data with PySpark

Preparing Video For Download...