Parsare suplimentară
Ai transformat acest set de date într-un format semnificativ diferit față de cel inițial, însă mai sunt câteva lucruri de făcut. Trebuie să pregătești datele din coloane pentru analizele ulterioare și să elimini câteva coloane intermediare.
Contextul spark este disponibil, iar pyspark.sql.functions este importat cu aliasul F. Tipurile din pyspark.sql.types sunt deja importate. DataFrame-ul split_df se află în starea în care l-ai lăsat. Reține că poți folosi .printSchema() pe un DataFrame în consola de lucru pentru a vizualiza numele și tipurile coloanelor.
⚠️ Notă: Dacă apare un AttributeError, reîncarcă exercițiile și apasă Run Solution fără a apăsa Rulează codul.
Acest exercițiu face parte din cursul
Curățarea datelor cu PySpark
Instrucțiuni pentru exercițiu
- Creează o funcție nouă numită
retrievercare primește două argumente: coloanele divizate (cols) și numărul total de coloane (colcount). Această funcție trebuie să returneze o listă cu înregistrările care nu au fost încă definite ca și coloane (adică tot ceea ce se află după elementul 4 din listă). - Definește funcția ca un UDF Spark, care returnează un array de șiruri de caractere.
- Creează coloana nouă
dog_listfolosind UDF-ul și coloanele disponibile în DataFrame. - Elimină coloanele
_c0,colcountșisplit_cols.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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('____').____('____').____('____')