Parsing aggiuntivo
Hai trasformato questo insieme di dati in un formato molto diverso rispetto a prima, ma restano ancora alcune cose da fare. Devi preparare i dati delle colonne per le analisi successive e rimuovere alcune colonne intermedie.
Il contesto spark è disponibile e pyspark.sql.functions è in alias come F. I tipi da pyspark.sql.types sono già importati. Il DataFrame split_df è rimasto come l'hai lasciato. Ricorda: puoi usare .printSchema() su un DataFrame nell'area della console per vedere nomi e tipi delle colonne.
⚠️ Nota: Se vedi un AttributeError, aggiorna gli esercizi e fai clic su Run Solution senza fare clic su Esegui codice.
Questo esercizio fa parte del corso
Pulizia dei dati con PySpark
Istruzioni dell'esercizio
- Crea una nuova funzione chiamata
retrieverche accetta due argomenti: le colonne splittate (cols) e il numero totale di colonne (colcount). Questa funzione deve restituire una lista delle voci che non sono ancora state definite come colonne (cioè tutto ciò che viene dopo l'elemento 4 della lista). - Definisci la funzione come una UDF di Spark, che restituisce un Array di stringhe.
- Crea la nuova colonna
dog_listusando la UDF e le colonne disponibili nel DataFrame. - Rimuovi le colonne
_c0,colcountesplit_cols.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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('____').____('____').____('____')