시작하기무료로 시작하기

피벗 & 조인

복합 필드를 explode하고 피벗하는 것은 유용하지만, 그렇게 하면 피벗된 값만 있는 DataFrame만 남게 됩니다. 진짜로 가치 있게 만들려면 원본 데이터셋과 다시 조인해야 해요! 데이터셋을 조인한 뒤에는 새로 만들어진 열에 대해 NULL 값이 많이 생길 수 있습니다. 하지만 이 열들이 생성된 맥락을 알고 있으므로, 해당 속성이 있거나 없다는 의미에서 0으로 안전하게 채워 넣어도 됩니다.

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

PySpark로 하는 Feature Engineering

강의 보기

연습 안내

  • groupBy()로 레코드 id NO를 기준으로 묶어서 ex_garage_list의 값을 피벗하세요. 제공된 코드를 사용해 NULL을 무시하고 첫 값을 취하도록 constant_val을 집계하세요.
  • 조인 조건으로 NO를 사용해 piv_dfdf와 left 조인하세요.
  • piv_dfcolumns 속성을 사용해 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=____)
코드 편집 및 실행