【发布时间】:2016-07-20 12:02:46
【问题描述】:
有没有办法用最后一个有效值替换 pyspark 数据框中的 null 值?如果您认为 Windows 分区和排序需要它们,还有额外的 timestamp 和 session 列。更具体地说,我想实现以下转换:
+---------+-----------+-----------+ +---------+-----------+-----------+
| session | timestamp | id| | session | timestamp | id|
+---------+-----------+-----------+ +---------+-----------+-----------+
| 1| 1| null| | 1| 1| null|
| 1| 2| 109| | 1| 2| 109|
| 1| 3| null| | 1| 3| 109|
| 1| 4| null| | 1| 4| 109|
| 1| 5| 109| => | 1| 5| 109|
| 1| 6| null| | 1| 6| 109|
| 1| 7| 110| | 1| 7| 110|
| 1| 8| null| | 1| 8| 110|
| 1| 9| null| | 1| 9| 110|
| 1| 10| null| | 1| 10| 110|
+---------+-----------+-----------+ +---------+-----------+-----------+
【问题讨论】:
-
你不能。 DataFrames 行之间没有顺序。
-
如果我有
timestamp的订单怎么办? -
你不能按某种寡妇划分吗?这种情况下怎么办,手动一一处理条目并保持状态?
-
@eliasah “不可能”是一个强有力的断言,我会谨慎使用。正如下面的几个答案所证明的那样,它是可能的。 (尽管这些解决方案可能并不适用于所有情况。)
-
@lostsoul29 我的评论是针对当时问题的状态给出的,现在已经过时了。我会删除它。谢谢!
标签: apache-spark pyspark apache-spark-sql