Aan de slagBegin gratis

Controleren op verkeerde joins

Joins kunnen stilletjes misgaan als je niet oplet: er verschijnt geen foutmelding, maar je krijgt verminkte data met meer of juist minder rijen dan je bedoelde. Laten we kijken naar een paar manieren waarop een onjuiste join je gegevensset kan verslechteren.

In dit voorbeeld bekijken we wat er gebeurt als je twee dataframes joinet terwijl de join-sleutels niet dezelfde precisie hebben, en vergelijken we het aantal records tussen de correcte en de onjuiste join.

Deze oefening maakt deel uit van de cursus

Feature Engineering met PySpark

Bekijk cursus

Oefeninstructies

  • Maak een join tussen df_orig, het dataframe voordat de precisie was gecorrigeerd, en walk_df die matcht op longitude en latitude in de respectievelijke dataframes.
  • Tel het aantal ontbrekende waarden met where() en isNull() op df['walkscore'] en correct_join['walkscore']. Je zult merken dat er veel missende waarden zijn omdat onze datatypes en precisie niet overeenkomen.
  • Maak een join tussen df en walk_df die alleen matcht op longitude.
  • Tel het aantal records met count(): few_keys_df en correct_join_df. Je zult merken dat er veel meer waarden zijn omdat we onze matching niet goed hebben ingeperkt.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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(____.____()))
Code bewerken en uitvoeren