1. 학습
  2. /
  3. 강의
  4. /
  5. Python에서 Spark SQL 입문

Connected

연습 문제

점 표기법의 window 함수를 SQL로 변환하기

각 열에 다음 정차역까지 걸리는 시간을 분 단위로 담는 열을 열차 시간표에 추가해 보겠습니다.

  • 데이터프레임 df가 있으며, df.columns == ['train_id', 'station', 'time']입니다.
  • df는 schedule이라는 이름의 SQL 테이블로 등록되어 있습니다.
  • 다음 window 함수 쿼리는 점 표기법을 사용합니다. 이 코드는 새로운 데이터프레임 dot_df를 생성합니다.
window = Window.partitionBy('train_id').orderBy('time')
dot_df = df.withColumn('diff_min', 
                    (unix_timestamp(lead('time', 1).over(window),'H:m') 
                     - unix_timestamp('time', 'H:m'))/60)

unix_timestamp 함수는 SQL의 UNIX_TIMESTAMP 함수와 동등함에 유의하세요.

샘플 코드의 스캐폴딩을 유의해서 확인해 주세요. 스캐폴딩(밑줄 _____ 자리표시자)에 맞춰 답안을 작성해야 서식 문제로 오답 처리되지 않습니다.

지침

100 XP
  • dot_df와 동일한 결과를 얻는 SQL 쿼리를 작성하세요. 쿼리는 스캐폴딩(즉, 밑줄 자리표시자 _____)에 맞춰 서식을 지켜 주세요.