날짜 연산
이번 예제에서는 데이터의 빈도를 검증해 보려고 합니다. Mortgage 데이터셋은 주간 데이터여야 하지만, 실제로 그런지 확인해 보죠. 리포트 날짜를 한 기간 뒤로 밀고(lag) 두 날짜의 차이를 계산해 보겠습니다.
지연(lag)된 특성을 만들려면 window()를 생성해야 한다는 점을 기억하세요. window()는 레코드 그룹에 대한 계산 결과를 각 레코드에 반환할 수 있게 해 주며, 이 경우에는 이전 기간의 모기지 금리를 기준으로 값을 가져옵니다.
이 연습은 강의의 일부입니다
PySpark로 하는 Feature Engineering
연습 안내
to_date()로mort_df['DATE']를 날짜형으로 캐스팅하세요.Window()함수로 윈도를 만들고orderBy()를 사용해mort_df[DATE]로 정렬하세요.withColumn()에서lag()로DATE열을 지연시켜 새 열DATE-1을 만들고,over(w)로 윈도를 적용하세요.datediff()로DATE와DATE-1의 차이를 계산하고 열 이름을Days_Between_Report로 지정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
from pyspark.sql.functions import lag, datediff, to_date
from pyspark.sql.window import Window
# Cast data type
mort_df = mort_df.withColumn(____, ____(____))
# Create window
w = ____().____(____)
# Create lag column
mort_df = mort_df.____(____, ____(____, count=1).____(w))
# Calculate difference between date columns
mort_df = mort_df.withColumn(____, ____(____, ____))
# Print results
mort_df.select('Days_Between_Report').distinct().show()