Uso delle funzioni definite dall'utente in Spark
Hai già visto la potenza delle funzioni di stringa integrate di Spark per manipolare i DataFrame. Tuttavia, oltre un certo punto diventa difficile elaborare i dati senza creare un groviglio di chiamate a funzione. Ecco un caso in cui puoi usare le funzioni definite dall'utente (User Defined Functions) per manipolare i nostri DataFrame.
Per questo esercizio useremo il DataFrame voter_df, ma andrai a sostituire la colonna first_name con il nome e il secondo nome.
La libreria pyspark.sql.functions è disponibile con l'alias F. Le classi di pyspark.sql.types sono già importate.
Questo esercizio fa parte del corso
Pulizia dei dati con PySpark
Istruzioni dell'esercizio
- Modifica la funzione
getFirstAndMiddle()in modo che restituisca una stringa di nomi separati da spazi, tranne l'ultimo elemento della lista di nomi. - Definisci la funzione come funzione definita dall'utente (UDF). Dovrebbe restituire un tipo stringa.
- Crea una nuova colonna su
voter_dfchiamatafirst_and_middle_nameusando la tua UDF. - Mostra il DataFrame.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
def getFirstAndMiddle(names):
# Return a space separated string of names
return ' '.join(____)
# Define the method as a UDF
udfFirstAndMiddle = F.____(____, ____)
# Create a new column using your UDF
voter_df = voter_df.withColumn('first_and_middle_name', ____(____))
# Show the DataFrame
____