Найти продолжительность времени между двумя последовательными состояниями в pyspark или улье - PullRequest
0 голосов
/ 25 октября 2018

У меня есть фрейм данных, который выглядит как показано ниже со столбцами: ID, STATE and TIMESTAMP.Фрейм данных отсортирован согласно ID and TIMESTAMP.Нам нужно выяснить временной промежуток между state S1 to S2.

ПРИМЕЧАНИЕ. Для определенного идентификатора мы можем иметь несколько переходов между S1 и S2.И состояние всегда начинается с S1 и заканчивается S2.

Посмотрите на изображение, прилагаемое для получения дополнительной информации:

Вход в синий и ожидаемый вывод в зеленый

1 Ответ

0 голосов
/ 25 октября 2018
     select id, 
        unix_timestamp(timestamp) - 
        unix_timestamp(lag(timestamp) over(partition by id order by timestamp)) as time_diff
        from table;
...