You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark如何统计含多词的DataFrame列的词频?

PySpark实现关键词频次统计

实现步骤与代码

先创建测试用的DataFrame(模拟你提供的数据源):

from pyspark.sql import SparkSession
from pyspark.sql.functions import split, explode, lower, count, col

# 初始化SparkSession
spark = SparkSession.builder.appName("KeywordCount").getOrCreate()

# 创建测试数据
data = [(1, "Mary had a little lamb"),
        (2, "A little lamb is white"),
        (3, "Mary is little")]
df = spark.createDataFrame(data, ["Number", "Keywords"])

接下来执行关键词统计:

# 1. 拆分关键词列并展开为单行单关键词,同时统一转为小写
df_exploded = df.withColumn("keyword", explode(split(col("Keywords"), " "))) \
                .withColumn("keyword", lower(col("keyword")))

# 2. 按关键词分组统计出现次数,再按次数降序、关键词升序排序
result_df = df_exploded.groupBy("keyword") \
                       .agg(count("*").alias("count")) \
                       .orderBy(col("count").desc(), col("keyword").asc())

# 查看结果
result_df.show()

关键操作说明

  • split(col("Keywords"), " "):按空格拆分Keywords列的字符串为数组
  • explode(...):将数组中的每个元素拆分为单独的行,实现一行多关键词到多行单关键词的转换
  • lower(...):统一关键词为小写,避免大小写差异导致统计重复(比如原数据中的"A"和"a"会被合并为"a")
  • groupBy + count:统计每个关键词的出现次数
  • orderBy:按次数从高到低排序,次数相同时按关键词字母顺序排序,匹配你期望的输出顺序

内容的提问来源于stack exchange,提问作者Zane Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:09:54