【发布时间】:2019-01-14 11:19:33
【问题描述】:
我知道这是一个非常具体的问题,在 stackoverflow 上发布此类问题并不常见,但我处于一种奇怪的情况,即有一个可以解决我的问题的简单算法的想法,但无法实施它。因此我的问题。
我有一个数据框
|user_id| action | day | week |
------------------------------
| d25as | AB | 2 | 1 |
| d25as | AB | 3 | 2 |
| d25as | AB | 5 | 1 |
| m3562 | AB | 1 | 3 |
| m3562 | AB | 7 | 1 |
| m3562 | AB | 9 | 1 |
| ha42a | AB | 3 | 2 |
| ha42a | AB | 4 | 3 |
| ha42a | AB | 5 | 1 |
我想创建一个数据框,其用户似乎每周至少 3 天每月至少 3 周。 “day”列从 1 到 31,“week”列从 1 到 4。
我想这样做的方式是:
split dataframe into 4 dataframes for each week
for every week_dataframe count days seen per user.
count for every user how many weeks with >= 3 days they were seen.
only add to the new df the users seen for >= 3 such weeks.
现在我需要在 Spark 中以一种可扩展的方式执行此操作,但我不知道如何实现它。另外,如果你对算法有比我幼稚的方法更好的想法,那真的很有帮助。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-sql