1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Spark SQL bằng Python

Connected

Bài tập

Chuyển window function từ dot notation sang SQL

Chúng ta sẽ thêm một cột vào lịch trình tàu để mỗi hàng cho biết số phút tàu đến điểm dừng tiếp theo.

  • Ta có một dataframe df với df.columns == ['train_id', 'station', 'time'].
  • df đã được đăng ký thành một bảng SQL tên là schedule.
  • Truy vấn window function sau đây dùng dot notation. Nó tạo ra dataframe mới 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)

Lưu ý cách dùng hàm unix_timestamp, tương đương với hàm SQL UNIX_TIMESTAMP.

Hãy chú ý đến khung sườn trong mã mẫu. Định dạng câu trả lời theo đúng khung sườn sẽ giúp tránh bị chấm sai do lỗi định dạng.

Hướng dẫn

100 XP
  • Tạo một truy vấn SQL để thu được kết quả giống hệt dot_df. Hãy định dạng truy vấn theo đúng khung sườn (tức là các gạch dưới giữ chỗ _____).