Rimozione delle righe commentate
La tua/il tuo responsabile vuole che tu esegua un parsing complesso su un nuovo insieme di dati. I dati rappresentano annotazioni per il dataset ImageNet, ma concentrandosi specificamente sulle razze di cani e sulla loro identificazione nelle immagini. Prima di poter passare all'analisi vera e propria, devi ripulire varie componenti di dati non validi o errati. Lo schema generale del documento è sconosciuto, quindi vuoi importare le righe in una singola colonna per facilitare un'analisi rapida.
Per iniziare, devi rimuovere tutte le righe commentate nel dataset.
Il contesto spark e il file CSV di base (annotations.csv.gz) sono a tua disposizione. La funzione col è anch'essa disponibile.
Questo esercizio fa parte del corso
Pulizia dei dati con PySpark
Istruzioni dell'esercizio
- Importa il file
annotations.csv.gzin un DataFrame ed esegui un conteggio delle righe. Specifica come separatore il carattere |. - Interroga i dati per il numero di righe che iniziano con #.
- Importa di nuovo il file in un nuovo DataFrame, ma specifica il carattere di commento nelle opzioni per rimuovere le righe commentate.
- Conta le righe del nuovo DataFrame e verifica che la differenza sia quella attesa.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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" % (____, ____, ____))