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
Övningsinstruktioner
- Skapa en ny funktion som heter
retrieveroch 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_listmed hjälp av UDF:en och de tillgängliga kolumnerna i DataFrame:n. - Ta bort kolumnerna
_c0,colcountochsplit_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('____').____('____').____('____')