python - 如何使用 pyspark SQL 获取基于时间的累计值?

标签 python apache-spark apache-spark-sql

我有一张这样的 table :

enter image description here

在此表中,artist_id 代表特定歌手,Ds 是日期(从 2015 年 3 月 1 日到 4 月底),like 是在这一天有多少人喜欢这位歌手的歌曲。 我想得到like的累计值,例如20150303这一天,该值将是20150301和20150302和20150303的原始值之和。 我怎样才能做到呢?

最佳答案

您可以使用spark提供的聚合函数并获取输出。

您的问题是基于时间,但根据架构,它实际上是一列日期,因此您在 Ds 上聚合并获得类似于 like 的总和

df.groupBy("Ds").sum("like")

更新: 要获取提供日期之前所有天数的总和,可以在对提供的日期应用 filter 后使用 Reduce 来获取当前日期和之前日期的结果,然后对所有日期求和使用reduce或聚合函数sum

更多详情可查看here

关于python - 如何使用 pyspark SQL 获取基于时间的累计值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43199217/

相关文章:

apache-spark - Spark SQL 中反连接后联合

python - 如果线程处于无限 while 循环中,会发生什么情况?

python - 用不同颜色绘制线

dataframe - PySpark 只保留日期中的年份和月份

apache-spark - 如何避免连接中键列名称重复?

apache-spark-sql - Spark 流 + Spark SQL

python - 如何向 UserDict 提供类型提示?

python - 如果我在 __init__ 时没有可用的所有实例变量值,我可以创建一个对象吗?

scala - 为 Spark 序列化 Scalaz 订单

scala - Spark/Scala、数据集和案例类的多态性