Tổng hợp với dot SQL
Đoạn mã sau dùng SQL để gán giá trị cho một dataframe tên là df.
df = spark.sql("""
SELECT *,
LEAD(time,1) OVER(PARTITION BY train_id ORDER BY time) AS time_next
FROM schedule
""")
- Mệnh đề
LEADcó một hàm tương đương trongpyspark.sql.functions. - Các mệnh đề
PARTITION BYvàORDER BYđều có hàm dot notation tương đương được gọi trên đối tượngWindow. - Các import sau đã sẵn có:
- from pyspark.sql import Window
- from pyspark.sql.functions import lead
Bài tập này là một phần của khóa học
Nhập môn Spark SQL bằng Python
Hướng dẫn bài tập
- Tạo một dataframe tên
dot_dfcho ra kết quả giống hệtdf, dùng dot notation thay cho SQL.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Obtain the identical result using dot notation
dot_df = df.withColumn('time_next', ____('time', 1)
.over(____.____('train_id')
.____('time')))