Tecniche di gestione dei dati

Pulizia dei dati con PySpark

Mike Metzger

Data Engineering Consultant

Cosa stiamo cercando di fare il parsing?

  • Dati non corretti
    • Righe vuote
    • Righe commentate
    • Intestazioni
  • Strutture annidate
    • Delimitatori multipli
  • Dati irregolari
    • Numero di colonne diverso per riga
  • Focus su dati CSV
width, height, image

# This is a comment
200    300    affenpinscher;0
600    450    Collie;307    Collie;101
600    449    Japanese_spaniel;23
Pulizia dei dati con PySpark

Annotazioni Stanford ImageNet

  • Identifica razze di cani nelle immagini
  • Fornisce l’elenco di tutti i cani identificati nell’immagine
  • Altri metadati (cartella base, dimensioni immagine, ecc.)

Righe di esempio:

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
Pulizia dei dati con PySpark

Rimozione di righe vuote, intestazioni e commenti

Il parser CSV di Spark:

  • Rimuove automaticamente le righe vuote
  • Può rimuovere i commenti con un argomento opzionale
df1 = spark.read.csv('datafile.csv.gz', comment='#')
  • Gestisce i campi di intestazione
    • Definiti tramite argomento
    • Ignorati se è definito uno schema
df1 = spark.read.csv('datafile.csv.gz', header='True')
Pulizia dei dati con PySpark

Creazione automatica delle colonne

Spark:

  • Crea automaticamente colonne in un DataFrame in base all’argomento sep
    df1 = spark.read.csv('datafile.csv.gz', sep=',')
    
  • Usa , come default
  • Esegue comunque il parsing se sep non è nella stringa
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • Memorizza i dati in una colonna chiamata _c0 per default
  • Ti permette di gestire correttamente separatori annidati
Pulizia dei dati con PySpark

Passiamo alla pratica !

Pulizia dei dati con PySpark

Preparing Video For Download...