python - 如何在 Pyspark 聚合中进行多重算术运算
问题描述
最近,我只是尝试在 Pyspark 聚合中进行单次算术运算,这是熊猫代码
packetmonthly=packet.groupby(['year','month','msisdn']).apply(lambda s: pd.Series({
"packet_sum": s.amount.sum(),
"packet_avg": s.amount.mean()
})).reset_index()
和 pyspark 代码
from pyspark.sql.functions import max as pyspark_max, min as pyspark_min, sum as pyspark_sum, avg
fd_packet = fd_packetpurchase \
.groupBy('year', 'month', 'msisdn') \
.agg(pyspark_min('amount').alias('packet_min'),
pyspark_max('amount').alias('packet_max'),
avg('amount').alias('packet_avg'),
pyspark_sum('amount').alias('packet_sum'))
这是我需要翻译的熊猫代码
datadaily=profile[profile.month.isin([12,1])].groupby(['year','month','day','msisdn']).apply(lambda s: pd.Series({
"totrev_sum": (s["voice_revenue"]+s["sms_revenue"]+s["dta_revenue"]+s["vas_revenue"]).sum(),
"data_yield_sum": (s["dta_revenue"].sum()/s["data_usage"].sum())
})).reset_index()
如何在pyspark中做到这一点?
解决方案
推荐阅读
- jaspersoft-studio - Jaspersoft studio 画布大小或图像大小问题
- c++ - int num(5); 之间的区别 和 int 数 = 5; int num(5); 是什么意思?意思是?
- asp.net-core - 当方法被标记为 AllowAnonymous 时,CORS 是否仍然强制执行
- laravel - 按日期过滤 elequent 关系
- android - setOnLongClickListener 中对话框自动关闭的问题
- url - 无法使用 JDBC URL 连接到 SOLR
- c++ - 即使输入为 0,值也始终设置为 1
- laravel - 使用 where 时的未知列总数
- accessibility - LibreOffice 中的辅助功能调整:如何防止在键入时意外选择的文本被替换?
- single-sign-on - SSO 应用程序错误:MMC 无法创建管理单元