Eliminarea rândurilor invalide
Acum că ai eliminat cu succes rândurile cu comentarii, ai primit câteva informații despre formatul general al datelor. DataFrame-ul ar trebui să conțină cel puțin 5 coloane separate prin tab. Reține că DataFrame-ul original are o singură coloană, deci va trebui să împarți datele după caracterele tab (\t).
DataFrame-ul annotations_df este deja disponibil, cu rândurile cu comentarii eliminate. Biblioteca spark.sql.functions este disponibilă sub aliasul F. Numărul inițial de rânduri din DataFrame este stocat în variabila initial_count.
Acest exercițiu face parte din cursul
Curățarea datelor cu PySpark
Instrucțiuni pentru exercițiu
- Creează o nouă variabilă
tmp_fieldsfolosind coloana'_c0'din DataFrame-ulannotations_df, împărțind-o după caracterul tab. - Adaugă o nouă coloană în
annotations_dfnumită'colcount', care să reprezinte numărul de câmpuri definit la pasul anterior. - Filtrează din
annotations_dftoate rândurile care conțin mai puțin de 5 câmpuri. - Numără rândurile din DataFrame și compară rezultatul cu
initial_count.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Split _c0 on the tab character and store the list in a variable
tmp_fields = ____(annotations_df['_c0'], ____)
# Create the colcount column on the DataFrame
annotations_df = annotations_df.____('____', ____(____))
# Remove any rows containing fewer than 5 fields
annotations_df_filtered = annotations_df.____(~ (____))
# Count the number of rows
final_count = ____
print("Initial count: %d\nFinal count: %d" % (initial_count, final_count))