【发布时间】:2020-06-23 14:33:43
【问题描述】:
我有一个我最初认为是微不足道的问题。
我有一个与支持票务系统相关的数据集。 对于每张票,我都有以下列 open_date、last_updated_date、状态(仅打开或关闭)、产品、客户。
我要构建的是一个数据集,可以按月汇总票证状态。 对于每个月,我想查看该月打开和关闭的门票数量。这是相对简单的。 我还想在每个月底按年龄确定积压工作。即在月底开放的门票中有多少是 60 天的。
所以列将是:
月份、产品、客户、Number_opened、Number_Closed、Number60_days
基本算法是
for each ticket
increment opened and closed values in corresponding months
increment relevant backlog age columns in relevant months between opened month and closed month
我正在开发基于 Spark 的 Palantir 系统,所以我认为 pyspark 将是首选之剑。然而,这个 SO 帖子how to loop through each row of dataFrame in pyspark 似乎说这不是在 Spark 上要做的事情,因为它是一个分布式系统,更多地在柱状基础上运行。
使用 .collect 循环每行相当于将数据帧转储到内存中,这迟早会导致问题。 或者,我可以导出到 pandas 数据框并以这种方式工作,但随着时间的推移,同样的问题。
有没有人想到另一种 pyspark-esque 方法可以做我正在寻找的东西?
最好的问候,
科尔姆
附:我认为每个支持团队都会生成这种统计数据,所以如果有人知道已经有一个神奇的模块可以做到这一点,那么请随时从根本上照亮我的一天。
【问题讨论】: