Technieken voor gegevensverwerking

Data opschonen met PySpark

Mike Metzger

Data Engineering Consultant

Wat proberen we te parsen?

  • Onjuiste data
    • Lege rijen
    • Commentaarregels
    • Kopteksten
  • Geneste structuren
    • Meerdere scheidingstekens
  • Niet-reguliere data
    • Verschillend aantal kolommen per rij
  • Focus op CSV-data
width, height, image

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

Stanford ImageNet-annotaties

  • Herkent hondenrassen in afbeeldingen
  • Geeft lijst van alle gedetecteerde honden in de afbeelding
  • Overige metadata (basismap, afbeeldingsgrootte, enz.)

Voorbeeldrijen:

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
Data opschonen met PySpark

Lege regels, headers en commentaar verwijderen

De CSV-parser van Spark:

  • Verwijdert automatisch lege regels
  • Kan commentaar verwijderen met een optioneel argument
df1 = spark.read.csv('datafile.csv.gz', comment='#')
  • Gaat om met headers
    • Ingesteld via argument
    • Genegeerd als een schema is gedefinieerd
df1 = spark.read.csv('datafile.csv.gz', header='True')
Data opschonen met PySpark

Automatisch kolommen aanmaken

Spark zal:

  • Automatisch kolommen aanmaken in een DataFrame op basis van het sep-argument
    df1 = spark.read.csv('datafile.csv.gz', sep=',')
    
  • Standaard , gebruiken
  • Nog steeds parsen als sep niet in de string staat
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • Data opslaan in een kolom met standaardnaam _c0
  • Hiermee geneste scheidingstekens correct afhandelen
Data opschonen met PySpark

Laten we oefenen!

Data opschonen met PySpark

Preparing Video For Download...