Pyspark 在Spark中每次出现值之前获取X行
我是Spark的新手,我遇到了一些概念上的障碍。我正在寻找关于如何解决这个问题的一般想法: 我有一些这个表格的日志数据-Pyspark 在Spark中每次出现值之前获取X行,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,我是Spark的新手,我遇到了一些概念上的障碍。我正在寻找关于如何解决这个问题的一般想法: 我有一些这个表格的日志数据- +-------------+--------------------+----+----------+ |serial_number| timestamp|code|fault_type| +-------------+--------------------+----+----------+ | 633878|2017-12-11 01:4
+-------------+--------------------+----+----------+
|serial_number| timestamp|code|fault_type|
+-------------+--------------------+----+----------+
| 633878|2017-12-11 01:45:...| 1| STATE|
| 633833|2017-12-11 01:45:...| 3| STATE|
| 633745|2017-12-11 01:45:...| 306| STATE|
| 633747|2017-12-11 01:46:...| 1| STATE|
| 634039|2017-12-11 01:46:...| 4| STATE|
| 633833|2017-12-11 01:46:...| 1| STATE|
| 637480|2017-12-11 01:46:...| 1| STATE|
| 634029|2017-12-11 01:46:...| 3| STATE|
| 634046|2017-12-11 01:46:...| 3| STATE|
| 634039|2017-12-11 01:46:...| 1| STATE|
有时,fault_type将等于QUIT,而不是STATE。我正在Spark中寻找一种方法来选择退出故障之前的X个记录数,并创建这些选定数据块的数据帧,其中每一行可以是退出故障之前X个代码数的列表
谢谢你的帮助 我会将您的数据帧连接到自身 在左侧,您选择故障类型为QUIT的所有事件,在右侧,您选择所有之前的事件(时间戳小于),按时间和限制排序。
然后,您可以对左侧的记录进行分组,并对右侧的记录执行
collect\u list
。时间戳或序列号方面的“previous”是什么意思?谢谢,这是一个完美的解决方案!