【发布时间】:2020-07-12 12:37:35
【问题描述】:
火花 2.4.5 在我的数据框中,我有一个结构数组,该数组不时保存一个字段的快照。
现在,我正在寻找一种在数据发生变化时只保留快照的方法。
我的架构如下
root
|-- fee: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- updated_at: long (nullable = true)
| | |-- fee: float (nullable = true)
|-- status: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- updated_at: long (nullable = true)
| | |-- status: string (nullable = true)
现有输出:
+------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
|fee |status |
+------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
|[[1584579671000, 12.11], [1584579672000, 12.11], [1584579673000, 12.11]]|[[1584579671000, Closed-A], [1584579672000, Closed-A], [1584579673000, Closed-B], [1584579674000, Closed], [1584579675000, Closed-A]]|
+------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
由于“费用”栏没有改变,所以它应该只有一个条目 由于状态已经改变了几次,所以 o/p 将是 [[1584579671000, Closed-A], [1584579673000, Closed-B], [1584579674000, Closed], [1584579675000, Closed-A]] 注意这里的状态“Closed-A”出现了两次。
试图得到以下输出:
+------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
|fee |status |
+------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
|[[1584579671000, 12.11]]|[[1584579671000, Closed-A], [1584579673000, Closed-B], [1584579674000, Closed], [1584579675000, Closed-A]]|
+------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
注意:尽量不要有用户定义的函数。
【问题讨论】:
-
@jxc Spark 版本 2.4.5
-
在你的输入中 Closed-A 出现了 3 次,这个值呢 - [1584579672000, Closed-A] ?
标签: scala apache-spark apache-spark-sql spark-streaming