聚合的点式 SQL
下面的代码使用 SQL 设置名为 df 的 dataframe:
df = spark.sql("""
SELECT *,
LEAD(time,1) OVER(PARTITION BY train_id ORDER BY time) AS time_next
FROM schedule
""")
LEAD子句在pyspark.sql.functions中有等价函数。PARTITION BY和ORDER BY子句在Window对象上各有等价的点式调用函数。- 可用的导入如下:
- from pyspark.sql import Window
- from pyspark.sql.functions import lead
本练习是课程的一部分
Python 中的 Spark SQL 入门
练习说明
- 使用点式调用替代 SQL,创建一个名为
dot_df的 dataframe,使其结果与df完全一致。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Obtain the identical result using dot notation
dot_df = df.withColumn('time_next', ____('time', 1)
.over(____.____('train_id')
.____('time')))