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

Spark SQL按ID汇总数量并合并位置的实现需求

解决方案:Spark SQL与PySpark实现分组求和+字符串合并

Spark SQL 实现

假设你的数据表名为your_table,先注册临时视图(若未注册):

CREATE OR REPLACE TEMP VIEW temp_data AS SELECT * FROM your_table;

执行分组查询,实现求和与字符串合并:

SELECT
    ID,
    SUM(Quantity) AS Quantity,
    CONCAT_WS(',', COLLECT_LIST(Location)) AS Location
FROM temp_data
GROUP BY ID
ORDER BY ID;

如果同一个ID下存在重复的Location值,需要去重的话,将COLLECT_LIST替换为COLLECT_SET即可。

PySpark 实现

假设你的数据存储在DataFramedf中,使用PySpark API实现:

from pyspark.sql import functions as F

# 分组聚合
result_df = df.groupBy("ID") \
    .agg(
        F.sum("Quantity").alias("Quantity"),
        F.concat_ws(",", F.collect_list("Location")).alias("Location")
    ) \
    .orderBy("ID")

# 查看结果
result_df.show()

同样,若需对Location去重,用F.collect_set("Location")替换F.collect_list("Location")。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:20:06