pyspark - pyspark sum 使用开始和结束日期按月份和日期分组
问题描述
我有一个合同数据框:开始期、结束期、每月价格。我试图获得每个月的总收入。
当前数据框:
id start_period end_period montly_price
1 2019-01-01 2019-03-01 30
2 2019-01-01 2019-06-01 20
3 2019-07-01 2020-08-01 10
4 2019-07-01 2020-08-01 10
预期输出:
period revenue_per_month_all_ids
2019-01 50
2019-02 50
2019-04 20
2019-05 20
2019-06 0
2019-07 20
解决方案
假设你没有合同,start_period
并且end_period
有不同的月份(如果是这种情况,你想如何进行?你能编辑你的问题或评论这篇文章吗?)
import pyspark.sql.functions as psf
df.withColumn("month",psf.month('start_period'))
.groupBy("period")
.agg(psf.sum("monthly_price").alias("revenue_per_month_all_ids"))
推荐阅读
- objective-c - iOS 12 Xcode 10 应用程序:openURL:选项:崩溃
- android-studio - Android Studio - Kotlin 安装在哪里?
- javascript - highcharts.chart是不是一个函数?
- mongodb - 错误信息查找管道必须是字符串,是数组类型
- llvm - 一个llvm程序生成多少个ast?
- android - 未知主机(我的代理 ip)。您可能需要在 android studio 中调整 Gradle 中的代理设置
- java - 创建一个后端 java RESTful API,它将与存储在云上的数据库进行通信
- vb.net - 在 vb.net 中裁剪图像
- angular - Ngrx 效果:输出未添加到操作流中
- go - 如何获得没有时区的时间?