Verder parsen
Je hebt deze gegevensset omgevormd tot een duidelijk ander formaat dan eerst, maar er zijn nog een paar dingen te doen. Je moet de kolomgegevens voorbereiden voor later gebruik in analyses en een paar tussenkolommen verwijderen.
De spark-context is beschikbaar en pyspark.sql.functions is als F geïmporteerd. De types uit pyspark.sql.types zijn al geïmporteerd. De DataFrame split_df staat er nog precies zoals je hem achterliet. Onthoud: je kunt in de console .printSchema() op een DataFrame gebruiken om de kolomnamen en -types te bekijken.
⚠️ Let op: Als je een AttributeError ziet, ververs dan de oefening en klik op Run Solution zonder op Code uitvoeren te klikken.
Deze oefening maakt deel uit van de cursus
Data opschonen met PySpark
Oefeninstructies
- Maak een nieuwe functie
retrieverdie twee argumenten krijgt: de gesplitste kolommen (cols) en het totale aantal kolommen (colcount). Deze functie moet een lijst teruggeven met de items die nog niet als kolommen zijn gedefinieerd (dus alles na item 4 in de lijst). - Definieer de functie als een Spark UDF die een Array van strings teruggeeft.
- Maak de nieuwe kolom
dog_listmet de UDF en de beschikbare kolommen in de DataFrame. - Verwijder de kolommen
_c0,colcountensplit_cols.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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('____').____('____').____('____')