Utilizarea funcțiilor definite de utilizator în Spark
Ai văzut o parte din puterea funcțiilor integrate Spark pentru șiruri de caractere atunci când vine vorba de manipularea DataFrame-urilor. Totuși, la un moment dat, procesarea datelor fără o structură clară poate deveni rapid un labirint de apeluri de funcții imbricate. Acesta este un caz în care funcțiile definite de utilizator (UDF) te pot ajuta să manipulezi DataFrame-urile mai elegant.
Pentru acest exercițiu, vei folosi DataFrame-ul voter_df, dar vei înlocui coloana first_name cu prenumele și numele de mijloc.
Biblioteca pyspark.sql.functions este disponibilă sub aliasul F. Clasele din pyspark.sql.types sunt deja importate.
Acest exercițiu face parte din cursul
Curățarea datelor cu PySpark
Instrucțiuni pentru exercițiu
- Editează funcția
getFirstAndMiddle()astfel încât să returneze un șir de caractere cu numele separate prin spațiu, cu excepția ultimei intrări din lista de nume. - Definește funcția ca o funcție definită de utilizator. Aceasta trebuie să returneze un tip string.
- Creează o coloană nouă în
voter_dfnumităfirst_and_middle_namefolosind UDF-ul tău. - Afișează DataFrame-ul.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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
____