PySpark DataFrame如何按国家和地区双重分组统计城市数量?
PySpark实现按国家和地区双重分组统计城市数量
只需在groupBy()方法中同时传入country和subcountry两个字段,就能实现双重分组统计,其余聚合、排序逻辑保持不变。
完整代码如下:
from pyspark.sql.functions import col, count # 读取数据 df = spark.read.json("/content/world-cities.json") df.printSchema() df.show() # 按国家+地区双重分组,统计每组城市数量并降序展示 df.groupBy(col('country'), col('subcountry'))\ .agg(count("*").alias("city_count"))\ .orderBy(col('city_count').desc())\ .show()
关键说明:
groupBy(col('country'), col('subcountry')):指定两个分组字段,Spark会将同国家同地区的记录归为一组count("*"):统计每组内的记录数,即对应国家和地区下的城市数量,用alias()给统计结果命名为更直观的city_countorderBy(col('city_count').desc()):按统计出的城市数量降序排列结果
内容的提问来源于stack exchange,提问作者Ark
相关产品推荐
相关产品推荐

