Comprobar Joins incorrectos
Los joins pueden salir mal sin que nos demos cuenta si no tenemos cuidado: no dan error, pero devuelven datos estropeados, con más o menos registros de los que pretendías. Veamos un par de formas en las que un join incorrecto puede empeorar tu conjunto de datos.
En este ejemplo, veremos qué ocurre si unes dos dataframes cuando las claves de unión no tienen la misma precisión y compararemos el número de registros entre el join correcto y el incorrecto.
Este ejercicio forma parte del curso
Ingeniería de características con PySpark
Instrucciones del ejercicio
- Crea un join entre
df_orig, el dataframe antes de corregir su precisión, ywalk_dfque coincida porlongitudeylatitudeen los respectivos dataframes. - Cuenta el número de valores ausentes con
where()isNull()endf['walkscore']ycorrect_join['walkscore']. Deberías notar que hay muchos valores ausentes porque nuestros tipos de datos y la precisión no coinciden. - Crea un join entre
dfywalk_dfque solo coincida porlongitude. - Cuenta el número de registros con
count():few_keys_dfycorrect_join_df. Deberías notar que hay muchos más valores porque no hemos restringido correctamente la coincidencia.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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(____.____()))