Kom igångKom igång gratis

Ta bort kommenterade rader

Din chef vill att du ska utföra komplex parsning på ett nytt dataset. Datan innehåller annoteringsinformation för ImageNet-datasetet, med fokus på hundraser och identifiering av dessa i bilder. Innan någon egentlig analys kan göras behöver du rensa bort flera typer av ogiltiga eller felaktiga data. Det övergripande schemat för filen är okänt, så du vill importera raderna till en enda kolumn för att snabbt kunna analysera innehållet.

Först behöver du ta bort alla kommenterade rader i datasetet.

spark-kontexten och bas-CSV-filen (annotations.csv.gz) finns tillgängliga för dig att arbeta med. Funktionen col är också tillgänglig.

Den här övningen är en del av kursen

Datarensning med PySpark

Visa kurs

Övningsinstruktioner

  • Importera filen annotations.csv.gz till en DataFrame och räkna antalet rader. Ange ett avgränsningstecken som är |.
  • Fråga datan om hur många rader som börjar med #.
  • Importera filen igen till en ny DataFrame, men ange kommentarstecknet i alternativen för att ta bort kommenterade rader.
  • Räkna den nya DataFrame:n och verifiera att skillnaden är som förväntat.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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" % (____, ____, ____))
Redigera och kör kod