Techniky zpracování dat

Cleaning Data with PySpark

Mike Metzger

Data Engineering Consultant

Co se pokoušíme parsovat?

  • Nesprávná data
    • Prázdné řádky
    • Řádky s komentáři
    • Hlavičky
  • Vnořené struktury
    • Více oddělovačů
  • Nepravidelná data
    • Různý počet sloupců na řádek
  • Zaměřeno na data ve formátu CSV
width, height, image

# This is a comment
200    300    affenpinscher;0
600    450    Collie;307    Collie;101
600    449    Japanese_spaniel;23
Cleaning Data with PySpark

Anotace Stanford ImageNet

  • Identifikuje plemena psů na obrázcích
  • Poskytuje seznam všech identifikovaných psů na obrázku
  • Další metadata (základní složka, velikost obrázku atd.)

Ukázkové řádky:

02111277    n02111277_3206    500    375    Newfoundland,110,73,416,298
02108422    n02108422_4375    500    375    bull_mastiff,101,90,214,356 \
 bull_mastiff,282,74,416,370
Cleaning Data with PySpark

Odstraňování prázdných řádků, hlaviček a komentářů

CSV parser ve Sparku:

  • Automaticky odstraňuje prázdné řádky
  • Může odstraňovat komentáře pomocí volitelného argumentu
df1 = spark.read.csv('datafile.csv.gz', comment='#')
  • Zpracovává pole hlavičky
    • Definováno pomocí argumentu
    • Ignorováno při definovaném schématu
df1 = spark.read.csv('datafile.csv.gz', header='True')
Cleaning Data with PySpark

Automatické vytváření sloupců

Spark provede:

  • Automatické vytvoření sloupců v DataFrame na základě argumentu sep
    df1 = spark.read.csv('datafile.csv.gz', sep=',')
    
  • Výchozí oddělovač je ,
  • Parsování proběhne úspěšně i pokud sep není v řetězci
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • Data uloží do sloupce s výchozím názvem _c0
  • Umožňuje správné zpracování vnořených oddělovačů
Cleaning Data with PySpark

Pojďme procvičovat!

Cleaning Data with PySpark

Preparing Video For Download...