pyspark的dataframe的单条件、多条件groupBy用法agg

本文总结了pyspark DataFrame在智能搜索引擎实战中的应用,包括使用groupBy和agg进行数据聚合:sum计算总分,avg计算平均得分,count统计资源数量,collect_list组合数据,max和min获取极值,以及多条件groupBy求和。这些方法在处理hive数据库中的数据时非常实用。
摘要由CSDN通过智能技术生成

智能搜索引擎 实战中用到的pyspark知识点总结

项目中,先配置了spark,通过spark对象连接到hive数据库,在 hive数据库中以dataframe的形式获取数据,使用pyspark的dataframe的相关方法操作数据,最后将整理好的数据写入hive表存入数据库,该篇介绍项目中使用到的groupBy,agg的相关方法。

sum和udf方法计算平均得分

数据介绍:主播表,一个主播有很多直播课,每个直播课都有一个总评分和评分人数,现要计算出该主播的平均得分。

思路:单个主播的所有的直播课的分数全部加起来,除以所有直播课的共同的评分人数。

from pyspark.sql.types import DoubleType
from pyspark.sql.functions import udf
def Spark():
	"""
	spark配置类
	"""
sp = Spark()
spark = sp.spark

df = spark.sql("select anchor_id,live_score,live_comment_count from table_anchor")
df = df.groupBy('anchor_id')
	   .agg({
   "live_score": "sum", "live_comment_count": "sum"})
	   .withColumnRenamed("sum(live_score)", "total_score")
	   .withColumnRenamed("sum(live_comment_count)", "total_people")

现在就获得了两列 总分数和总人数
使用udf方法自定义函数即可求的平均分

def avg_score(score,people):
	try:
		if
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值