피벗 & 조인
복합 필드를 explode하고 피벗하는 것은 유용하지만, 그렇게 하면 피벗된 값만 있는 DataFrame만 남게 됩니다. 진짜로 가치 있게 만들려면 원본 데이터셋과 다시 조인해야 해요! 데이터셋을 조인한 뒤에는 새로 만들어진 열에 대해 NULL 값이 많이 생길 수 있습니다. 하지만 이 열들이 생성된 맥락을 알고 있으므로, 해당 속성이 있거나 없다는 의미에서 0으로 안전하게 채워 넣어도 됩니다.
이 연습은 강의의 일부입니다
PySpark로 하는 Feature Engineering
연습 안내
groupBy()로 레코드 idNO를 기준으로 묶어서ex_garage_list의 값을 피벗하세요. 제공된 코드를 사용해 NULL을 무시하고 첫 값을 취하도록constant_val을 집계하세요.- 조인 조건으로
NO를 사용해piv_df를df와 left 조인하세요. piv_df의columns속성을 사용해 0으로 채울 열 목록zfill_cols를 만드세요.fillna()의subset을 사용해 피벗된 DataFrame의 열zfill_cols를 0으로 채우세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
from pyspark.sql.functions import coalesce, first
# Pivot
piv_df = ex_df.____(____).____(____).agg(coalesce(first(____)))
# Join the dataframes together and fill null
joined_df = ____.join(____, on='NO', how=____)
# Columns to zero fill
zfill_cols = ____.____
# Zero fill the pivoted values
zfilled_df = joined_df.____(0, subset=____)