시작하기무료로 시작하기

위험한 조인

이 연습 문제에서는 위도와 경도로 조인해, 동네의 보행 친화도를 측정한 다른 데이터셋을 가져오려고 합니다. 조인에 사용되는 컬럼의 데이터 타입이 같고, 소수점 아래 자리수(정밀도)도 같아야 조인이 제대로 동작한다는 점에 유의하세요!

아래를 보면 df['latitude']df['longitude']의 정밀도가 walk_df['longitude']walk_df['latitude']보다 높습니다. 조인이 올바르게 동작하도록 동일한 정밀도로 반올림해 주어야 합니다.

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

PySpark로 하는 Feature Engineering

강의 보기

연습 안내

  • withColumn()으로 컬럼을 제자리에서 교체하면서, cast('double')을 사용해 walk_df['latitude']walk_df['longitude']를 double 타입으로 변환하세요.
  • withColumn()round('latitude', 5), round('longitude', 5)를 사용해 해당 컬럼을 제자리에서 반올림하세요.
  • walk_df['latitude']df['latitude']가 일치하고, walk_df['longitude']df['longitude']가 일치하도록 조인 조건을 만드세요.
  • 위의 조건과 left 조인 타입을 사용해 dfwalk_dfjoin()으로 조인하고, 결과 데이터프레임을 join_df로 저장하세요.

실습형 인터랙티브 연습

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

# Cast data types
walk_df = ____.withColumn('longitude', ____.cast('double'))
walk_df = ____.withColumn(____, ____.cast('double'))

# Round precision
df = df.withColumn('longitude', round(____, 5))
df = df.withColumn(____, round(____, 5))

# Create join condition
condition = [____ == ____, ____ == ____]

# Join the dataframes together
join_df = ____.join(____, on=____, how=____)
# Count non-null records from new field
print(join_df.where(~join_df['walkscore'].isNull()).count())
코드 편집 및 실행