시작하기무료로 시작하기

날짜 연산

이번 예제에서는 데이터의 빈도를 검증해 보려고 합니다. 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()DATEDATE-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()
코드 편집 및 실행