Получение X строк перед каждым вхождением значения в Spark - PullRequest
0 голосов
/ 15 мая 2018

Я довольно новичок в Spark, и я наткнулся на концептуальный блокпост. Я ищу общие мысли о том, как подойти к этой проблеме:

У меня есть некоторые данные журнала этой формы -

+-------------+--------------------+----+----------+
|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, предшествующих ошибке QUIT, и создать кадр данных этих выбранных блоков данных, где каждая строка может быть списком кодов числа X, предшествующих QUIT.

Спасибо за помощь!

1 Ответ

0 голосов
/ 15 мая 2018

Я бы присоединил ваш фрейм данных к самому себе.

Слева вы выбираете все события с типом ошибки QUIT, справа вы выбираете все предыдущие события (временная метка меньше), упорядочивая по времени с лимитом.Затем вы можете выполнить группировку по записям слева и выполнить collect_list для записей справа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...