Kom igångKom igång gratis

Ytterligare parsning

Du har omformat den här datamängden till ett helt annat format än tidigare, men det återstår fortfarande några steg. Du behöver förbereda kolumndata för senare analys och ta bort några mellanliggande kolumner.

Kontexten spark är tillgänglig och pyspark.sql.functions är aliasad som F. Typerna från pyspark.sql.types är redan importerade. DataFrame:n split_df är i det skick du lämnade den. Kom ihåg att du kan använda .printSchema() på en DataFrame i konsolområdet för att se kolumnnamn och typer.

⚠️ Obs: Om du ser ett AttributeError, uppdatera övningarna och klicka på Kör lösning utan att klicka på Kör koden.

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

Datarensning med PySpark

Visa kurs

Övningsinstruktioner

  • Skapa en ny funktion som heter retriever och som tar två argument: de delade kolumnerna (cols) och det totala antalet kolumner (colcount). Funktionen ska returnera en lista med de poster som ännu inte har definierats som kolumner (dvs. allt efter element 4 i listan).
  • Definiera funktionen som en Spark-UDF som returnerar en array av strängar.
  • Skapa den nya kolumnen dog_list med hjälp av UDF:en och de tillgängliga kolumnerna i DataFrame:n.
  • Ta bort kolumnerna _c0, colcount och split_cols.

Interaktiv övning med praktiskt arbete

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

def retriever(____, ____):
  # Return a list of dog data
  return ____[4:____]

# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))

# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))

# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')
Redigera och kör kod