【发布时间】:2019-07-15 16:51:49
【问题描述】:
我有一个数据框,它提供了一组 id 编号和他们访问某个位置的日期,我试图在 spark scala 中找到一种方法来获取拥有的唯一人员(“id”)的数量每天或之前访问过此位置,这样如果他们在 2019 年 1 月 1 日访问,然后在 2019 年 1 月 7 日再次访问,则不会将一个 ID 号计算两次。
df.show(5,false)
+---------------+
|id |date |
+---------------+
|3424|2019-01-02|
|8683|2019-01-01|
|7690|2019-01-02|
|3424|2019-01-07|
|9002|2019-01-02|
+---------------+
我希望输出看起来像这样:在哪里我 groupBy(“date”) 并获取唯一 id 的计数作为累积数。 (例如:在 2019-01-03 旁边,它将在 2019-01-03 之前的任何一天给出不同的 id 计数)
+----------+-------+
|date |cum_ct |
+----------+-------+
|2019-01-01|xxxxx |
|2019-01-02|xxxxx |
|2019-01-03|xxxxx |
|... |... |
|2019-01-08|xxxxx |
|2019-01-09|xxxxx |
+------------------+
df.groupBy("date") 之后最好的方法是什么
【问题讨论】:
标签: scala date apache-spark grouping cumulative-sum