Techniki obsługi danych

Czyszczenie danych w PySpark

Mike Metzger

Data Engineering Consultant

Co staramy się przetworzyć?

  • Nieprawidłowe dane
    • Puste wiersze
    • Linie z komentarzami
    • Nagłówki
  • Struktury zagnieżdżone
    • Wiele separatorów
  • Dane nieregularne
    • Różna liczba kolumn w wierszach
  • Skupienie na danych CSV
width, height, image

# This is a comment
200    300    affenpinscher;0
600    450    Collie;307    Collie;101
600    449    Japanese_spaniel;23
Czyszczenie danych w PySpark

Adnotacje Stanford ImageNet

  • Identyfikuje rasy psów na zdjęciach
  • Zwraca listę wszystkich wykrytych psów na zdjęciu
  • Inne metadane (folder bazowy, rozmiar obrazu itp.)

Przykładowe wiersze:

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
Czyszczenie danych w PySpark

Usuwanie pustych wierszy, nagłówków i komentarzy

Parser CSV Sparka:

  • Automatycznie usuwa puste wiersze
  • Może usuwać komentarze za pomocą opcjonalnego argumentu
df1 = spark.read.csv('datafile.csv.gz', comment='#')
  • Obsługuje pola nagłówkowe
    • Definiowane przez argument
    • Ignorowane, jeśli zdefiniowano schemat
df1 = spark.read.csv('datafile.csv.gz', header='True')
Czyszczenie danych w PySpark

Automatyczne tworzenie kolumn

Spark wykona:

  • Automatyczne tworzenie kolumn w DataFrame na podstawie argumentu sep
    df1 = spark.read.csv('datafile.csv.gz', sep=',')
    
  • Domyślnie używa ,
  • Może poprawnie parsować, gdy sep nie występuje w ciągu
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • Przechowuje dane w kolumnie domyślnie nazwanej _c0
  • Umożliwia prawidłową obsługę zagnieżdżonych separatorów
Czyszczenie danych w PySpark

Czas na ćwiczenia!

Czyszczenie danych w PySpark

Preparing Video For Download...