ComeçarComece de graça

Verificando joins problemáticos

Joins podem dar errado silenciosamente se você não tomar cuidado. Em vez de gerar erro, eles podem retornar dados bagunçados, com mais ou menos registros do que você pretendia. Vamos ver algumas formas de como um join incorreto pode piorar seu conjunto de dados.

Neste exemplo, veremos o que acontece ao juntar dois dataframes quando as chaves de junção não têm a mesma precisão e vamos comparar as contagens de registros entre o join correto e o incorreto.

Este exercício faz parte do curso

Feature Engineering com PySpark

Ver curso

Instruções do exercício

  • Crie um join entre df_orig (o dataframe antes de corrigir a precisão) e walk_df que faça correspondência em longitude e latitude nos respectivos dataframes.
  • Conte o número de valores ausentes com where() isNull() em df['walkscore'] e correct_join['walkscore']. Você deve notar que há muitos valores ausentes porque nossos tipos de dados e a precisão não coincidem.
  • Crie um join entre df e walk_df que corresponda apenas em longitude.
  • Conte o número de registros com count(): few_keys_df e correct_join_df. Você deve notar que há muito mais valores, pois não restringimos corretamente nossa correspondência.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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(____.____()))
Editar e executar o código