Další parsování
Tento dataset jsi výrazně přeformátoval/a, ale ještě pár věcí zbývá. Je potřeba připravit data ve sloupcích pro pozdější analýzu a odstranit několik pomocných sloupců.
K dispozici máš kontext spark a pyspark.sql.functions je importován pod aliasem F. Typy z pyspark.sql.types jsou již naimportované. DataFrame split_df je ve stavu, v jakém jsi ho naposledy nechal/a. Nezapomeň, že na konzoli můžeš použít .printSchema() pro zobrazení názvů a typů sloupců.
⚠️ Poznámka: Pokud se zobrazí AttributeError, obnov cvičení a klikni na Run Solution bez předchozího kliknutí na Run Code.
Toto cvičení je součástí kurzu
Cleaning Data with PySpark
Pokyny k cvičení
- Vytvoř novou funkci
retriever, která přijímá dva argumenty: rozdělené sloupce (cols) a celkový počet sloupců (colcount). Tato funkce by měla vrátit seznam položek, které ještě nebyly definovány jako sloupce (tedy vše za položkou 4 v seznamu). - Definuj tuto funkci jako Spark UDF, která vrací pole řetězců (Array of strings).
- Vytvoř nový sloupec
dog_listpomocí UDF a dostupných sloupců v DataFrame. - Odstraň sloupce
_c0,colcountasplit_cols.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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('____').____('____').____('____')