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

如何在Databricks中使用PySpark合并低数值行并求和?

在Databricks中用PySpark合并低value行的最简实现方法

可以通过字段转换+分组聚合的方式快速实现需求,核心是先将value低于10的行统一标记为other,再按标记后的名称分组求和,具体代码如下:

from pyspark.sql.functions import when, sum

# 假设原始DataFrame名为df
processed_df = df.withColumn(
    "group_name",
    when(df.value >= 10, df.name).otherwise("other")
).groupBy("group_name").agg(
    sum("value").alias("value")
).withColumnRenamed("group_name", "name")

# 查看结果
processed_df.show()

代码逻辑说明:

  1. 用withColumn创建临时列group_name:判断value是否大于等于10,满足则保留原name,否则替换为other;
  2. 按group_name分组,对value求和并命名为value;
  3. 最后将临时列group_name重命名回name,得到目标格式的结果。

如果需要保持原有的行顺序(比如optionA、optionB、optionC在前,other在后),可以额外添加排序逻辑:

from pyspark.sql.functions import desc, col

# 按value降序排列,确保大数值行在前
processed_df.orderBy(desc(col("value"))).show()

内容的提问来源于stack exchange,提问作者Dmitriy M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:10:57