【发布时间】:2019-07-11 18:49:26
【问题描述】:
我有这个数据框
+----------------+-----------------------------+--------------------+--------------+----------------+
|customerid| | event | A | B | C |
+----------------+-----------------------------+--------------------+--------------+----------------+
| 1222222 | 2019-02-07 06:50:40.0 |aaaaaa | 25 | 5025 |
| 1222222 | 2019-02-07 06:50:42.0 |aaaaaa | 35 | 5000 |
| 1222222 | 2019-02-07 06:51:56.0 |aaaaaa | 100 | 4965 |
+----------------+-----------------------------+--------------------+--------------+----------------+
我想通过事件(tiemstamp)更新列 C 的值,并只保留新数据框中具有最新值更新的行,像这样
+----------------+-----------------------------+--------------------+--------------+----------------+
|customerid| | event | A | B | C |
+----------------+-----------------------------+--------------------+--------------+----------------+
| 1222222 | 2019-02-07 06:51:56.0 |aaaaaa | 100 | 4965 |
+----------------+-----------------------------+--------------------+--------------+----------------+
数据以带有火花流的流模式进入
【问题讨论】:
-
到目前为止你做了什么?看起来您需要通过某个公共键 (groupBy) 对行进行分组,然后从每个组中获取具有最大时间戳的记录。然后映射每个组的剩余记录。
-
@AlexeyNovakov 是的,我有很多带有键的事件,我想通过时间戳和 C 的最后一个值自动获取最后一个事件
标签: scala apache-spark dataframe bigdata spark-streaming