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

如何在PySpark中计算各宝可梦类型的平均出现概率?

解决宝可梦类型数组的平均出现概率统计问题

问题核心是原代码按整个类型数组分组,导致统计结果是类型组合的平均值,而非单个类型的统计数据。解决思路是先将数组拆分为单个类型的行,再进行分组统计:

1. 拆分类型数组为单行单类型

使用Spark的explode函数,将type列的数组元素拆分为独立行,每个类型对应一条记录,同时保留对应的spawn_chance值:

from pyspark.sql.functions import explode

# 拆分type数组,生成单个类型的行
exploded_df = df.select(explode(df.type).alias("single_type"), "spawn_chance")

2. 按单个类型分组计算平均值

基于拆分后的数据集,直接按single_type分组,计算spawn_chance的平均值:

from pyspark.sql.functions import avg

# 分组统计单个类型的平均出现概率
result_df = exploded_df.groupBy("single_type").agg(avg("spawn_chance").alias("avg_spawn_chance"))
result_df.show()

执行上述代码后,就能得到Grass、Poison、Fire等单个类型对应的平均出现概率,而非原有的类型组合统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:25:22