Tekniker för datahantering

Datarensning med PySpark

Mike Metzger

Data Engineering Consultant

Vad försöker vi parsa?

  • Felaktig data
    • Tomma rader
    • Kommentarsrader
    • Rubriker
  • Nästlade strukturer
    • Flera avgränsare
  • Oregelbunden data
    • Varierande antal kolumner per rad
  • Fokus på CSV-data
width, height, image

# This is a comment
200    300    affenpinscher;0
600    450    Collie;307    Collie;101
600    449    Japanese_spaniel;23
Datarensning med PySpark

Stanford ImageNet-annotationer

  • Identifierar hundraser i bilder
  • Listar alla identifierade hundar i bilden
  • Övriga metadata (basmapp, bildstorlek m.m.)

Exempelrader:

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
Datarensning med PySpark

Ta bort tomma rader, rubriker och kommentarer

Sparks CSV-parser:

  • Tar automatiskt bort tomma rader
  • Kan ta bort kommentarer via ett valfritt argument
df1 = spark.read.csv('datafile.csv.gz', comment='#')
  • Hanterar rubrikfält
    • Anges via argument
    • Ignoreras om ett schema är definierat
df1 = spark.read.csv('datafile.csv.gz', header='True')
Datarensning med PySpark

Automatisk kolumnskapning

Spark kommer att:

  • Automatiskt skapa kolumner i en DataFrame baserat på argumentet sep
    df1 = spark.read.csv('datafile.csv.gz', sep=',')
    
  • Använder , som standard
  • Kan fortfarande parsa korrekt om sep saknas i strängen
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • Lagrar data i en kolumn med standardnamnet _c0
  • Gör det möjligt att hantera nästlade avgränsare korrekt
Datarensning med PySpark

Nu kör vi en övning!

Datarensning med PySpark

Preparing Video For Download...