开始使用免费开始使用

分组与聚合 I

聚合之所以强大,部分原因在于可以配合分组使用。PySpark 专门提供了一个用于分组数据帧的类:pyspark.sql.GroupedData,您在前两个练习中已经见过。

您已经学会在不传入参数的情况下,对 DataFrame 调用 .groupBy() 来创建分组的 DataFrame。

现在,您将看到:当向 .groupBy() 传入一个或多个列名时,随后的聚合方法就会像在 SQL 查询中使用 GROUP BY 语句一样工作!

请记住,名为 sparkSparkSession 已经在您的工作区中,同时还有 Spark DataFrame flights

本练习是课程的一部分

PySpark 基础

查看课程

练习说明

  • 创建按列 tailnum 分组的 DataFrame,命名为 by_plane
  • 使用不带任何参数的 .count() 方法,统计每架飞机执行的航班次数。
  • 创建按列 origin 分组的 DataFrame,命名为 by_origin
  • 计算 air_time 列的 .avg(),以求出来自 PDX 和 SEA 的航班平均飞行时长。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Group by tailnum
by_plane = flights.groupBy("____")

# Number of flights each plane made
by_plane.____.show()

# Group by origin
by_origin = flights.groupBy("____")

# Average duration of flights from PDX and SEA
by_origin.avg("____").show()
编辑并运行代码