시작하기무료로 시작하기

잘못된 조인 확인하기

주의하지 않으면 조인이 조용히 잘못될 수 있어요. 즉 에러는 나지 않지만, 의도와 다르게 데이터가 뒤틀려 더 많거나 적은 레코드를 반환할 수 있습니다. 잘못된 조인이 데이터셋을 어떻게 악화시키는지 몇 가지 사례를 살펴보겠습니다.

이 예제에서는 조인 키의 정밀도가 서로 다를 때 두 데이터프레임을 조인하면 어떤 일이 일어나는지 보고, 올바른 조인과 잘못된 조인의 레코드 수를 비교해 보겠습니다.

이 연습은 강의의 일부입니다

PySpark로 하는 Feature Engineering

강의 보기

연습 안내

  • 정밀도를 수정하기 전의 데이터프레임인 df_origwalk_df 사이에, 각각의 데이터프레임에서 longitudelatitude가 일치하도록 조인을 만드세요.
  • df['walkscore']correct_join['walkscore']에서 where()isNull()을 사용해 결측값의 개수를 세세요. 데이터 타입과 정밀도가 맞지 않아 결측값이 매우 많다는 점을 확인하실 수 있을 거예요.
  • dfwalk_df 사이에 longitude만 일치하도록 조인을 만드세요.
  • few_keys_dfcorrect_join_df에 대해 count()로 레코드 수를 세세요. 매칭을 제대로 제한하지 않아 값이 훨씬 더 많아진다는 점을 확인하실 수 있을 거예요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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(____.____()))
코드 편집 및 실행