Usuwanie wierszy z komentarzami
Twój przełożony chce, abyś przeprowadził(a) złożone parsowanie nowego zbioru danych. Dane przedstawiają adnotacje do zbioru ImageNet, skupiając się konkretnie na rasach psów i ich rozpoznawaniu na zdjęciach. Zanim przejdziesz do właściwej analizy, musisz oczyścić dane z kilku typów nieprawidłowych lub błędnych wpisów. Ogólny schemat dokumentu nie jest znany, dlatego chcesz zaimportować wiersze do pojedynczej kolumny, co umożliwi szybką analizę.
Na początek usuń wszystkie wiersze z komentarzami ze zbioru danych.
Do dyspozycji masz kontekst spark oraz bazowy plik CSV (annotations.csv.gz). Dostępna jest również funkcja col.
To ćwiczenie jest częścią kursu
Czyszczenie danych w PySpark
Instrukcje do ćwiczenia
- Zaimportuj plik
annotations.csv.gzdo DataFrame i wykonaj zliczenie wierszy. Jako separator użyj znaku |. - Sprawdź w danych, ile wierszy zaczyna się od znaku #.
- Zaimportuj plik ponownie do nowego DataFrame, tym razem podając w opcjach znak komentarza, aby usunąć wszystkie wiersze z komentarzami.
- Zlicz wiersze w nowym DataFrame i sprawdź, czy różnica jest zgodna z oczekiwaniami.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import the file to a DataFrame and perform a row count
annotations_df = spark.read.____('____', sep=____)
full_count = annotations_df.____
# Count the number of rows beginning with '#'
comment_count = annotations_df.____(col('_c0').____('#')).count()
# Import the file to a new DataFrame, without commented rows
no_comments_df = ____.____.____('____', ____=____, comment='____')
# Count the new DataFrame and verify the difference is as expected
no_comments_count = no_comments_df.count()
print("Full count: %d\nComment count: %d\nRemaining count: %d" % (____, ____, ____))