Pyspark dataframe将列除以列中的常量值,而不收集datafram

2024-03-29 08:14:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pyspark数据框,记录了用户在某个网站上的登录会话数,每一天都是按注册日划分的。我想把这些计数除以注册当天的计数,得到分数。这意味着,当daysSinceRegistration字段为0时,分数值将始终为1。在

+----------+----------+---------------------+-----+
|sessionDay|   regDate|daysSinceRegistration|count|
+----------+----------+---------------------+-----+
|2019-06-11|2019-06-10|                    1| 6463|
|2019-06-11|2019-06-11|                    0|14452|
|2019-06-11|2019-06-09|                    2| 3878|
+----------+----------+---------------------+-----+

我知道这可以通过以下方式实现:

^{2}$

但是,这需要一个非常重的collect()调用,并且这段代码需要在短时间内运行很多次(大约300个不同的数据帧)。调用collect()似乎不是理想的方法。在

有没有办法不用调用这个collect()调用就可以得到我想要的结果吗?在


Tags: 数据代码用户网站count方式记录分数