【发布时间】:2018-12-03 20:12:23
【问题描述】:
我有一个DataFrame,其中包含“id”和“date”列。日期格式为 yyyy-mm-dd 这里是一个例子:
+---------+----------+
| item_id| ds|
+---------+----------+
| 25867869|2018-05-01|
| 17190474|2018-01-02|
| 19870756|2018-01-02|
|172248680|2018-07-29|
| 41148162|2018-03-01|
+---------+----------+
我想创建一个新列,其中每个日期都与一个从 1 开始的整数相关联。这样最小(最早的)日期获得整数 1 ,下一个(最早的第二个日期)被分配给 2 等等。 .
我希望我的DataFrame 看起来像这样...:
+---------+----------+---------+
| item_id| ds| number|
+---------+----------+---------+
| 25867869|2018-05-01| 3|
| 17190474|2018-01-02| 1|
| 19870756|2018-01-02| 1|
|172248680|2018-07-29| 4|
| 41148162|2018-03-01| 2|
+---------+----------+---------+
解释:
2018 年 1 月 2 日日期最早,因此其编号为 1。由于有 2 行具有相同的日期,因此 1 位于两次。在 2018-01-02 之后,下一个日期是 2018-03-01,因此它的编号是 2,依此类推...我怎样才能创建这样的列?
【问题讨论】:
标签: scala apache-spark apache-spark-sql