ÎncepețiÎncepe gratuit

Identificarea join-urilor incorecte

Join-urile pot produce erori silențioase dacă nu suntem atenți – adică nu generează mesaje de eroare, ci returnează date distorsionate, cu mai multe sau mai puține înregistrări decât ai intenționat. Să analizăm câteva situații în care un join incorect îți poate deteriora setul de date.

În acest exemplu vom vedea ce se întâmplă atunci când unești două dataframe-uri ale căror chei de join nu au aceeași precizie, comparând numărul de înregistrări dintre join-ul corect și cel incorect.

Acest exercițiu face parte din cursul

Feature Engineering cu PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un join între df_orig, dataframe-ul înainte ca precizia sa să fie corectată, și walk_df, care se potrivește după longitude și latitude în dataframe-urile respective.
  • Numără valorile lipsă folosind where() și isNull() pe df['walkscore'] și correct_join['walkscore']. Ar trebui să observi că există multe valori lipsă, deoarece tipurile de date și precizia nu corespund.
  • Creează un join între df și walk_df care se potrivește doar după longitude.
  • Numără înregistrările folosind count(): few_keys_df și correct_join_df. Ar trebui să observi că există mult mai multe valori, deoarece criteriile de potrivire nu sunt suficient de restrictive.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Join on mismatched keys precision 
wrong_prec_cond = [____ == ____, ____ == ____]
wrong_prec_df = ____.join(____, on=wrong_prec_cond, how='left')

# Compare bad join to the correct one
print(wrong_prec_df.____(____.____()).count())
print(correct_join_df.____(____.____).count())

# Create a join on too few keys
few_keys_cond = [____ == ____]
few_keys_df = ____.join(____, on=few_keys_cond, how='left')

# Compare bad join to the correct one
print("Record Count of the Too Few Keys Join Example: " + str(____.____()))
print("Record Count of the Correct Join Example: " + str(____.____()))
Editează și rulează codul