PySpark — связывание строк с другими строками для фильтрации
Как в PySpark связать данные в одной строке с другой строкой, а затем отфильтровать на основе этого?
Упрощенный пример,
У меня есть кадр данных pyspark с 9 строками данных в день, и у меня много дней данных, в приведенном ниже примере я даю 2 дня, 18 строк данных.
У меня есть сосуд под давлением, который автоматически наполняется 3 раза в день. Во-первых, мне нужно конечное конечное давление для первого экземпляра, где данные действительны, а во-вторых, чтобы отфильтровать все строки, где это значение превышает пороговое значение, 3000 фунтов на квадратный дюйм. В некоторых случаях данные действительны дважды в день, но я хочу, чтобы конечное давление соответствовало только первому действительному экземпляру.
Датафрейм:
Sep_3_2022, p_01_start, 26:00
Sep_3_2022, p_01_end, 31:00
3 сентября 2022 г., p_02_start, 27:00
Sep_3_2022, p_02_end, 29:00
Sep_3_2022, p_03_start, 27:00
Sep_3_2022, p_03_end, 3050
Sep_3_2022, p_01_validity, False
Sep_3_2022, p_02_validity, правда
Sep_3_2022, p_03_validity, правда
4 сентября 2022 г., p_01_start, 26:00
04.09.2022, p_01_end, 31:00
Sep_4_2022, p_02_start, 27:00
4 сентября 2022 г., стр_02_конец, 3050 г.
4 сентября 2022 г., p_03_start, 27:00
Сентябрь_4_2022, стр_03_конец, 3050
Sep_4_2022, p_01_validity, правда
Sep_4_2022, p_02_validity, правда
Sep_4_2022, p_03_validity, False
Желаемый результат 1 (первые достоверные данные дня):
3 сентября 2022 г., p_02_start, 27:00
Sep_3_2022, p_02_end, 29:00
Sep_3_2022, p_02_validity, правда
4 сентября 2022 г., p_01_start, 26:00
04.09.2022, p_01_end, 31:00
Sep_4_2022, p_01_validity, правда
Желаемый результат 2 (первые достоверные данные дня, выше порога, только конечное давление):
04.09.2022, p_01_end, 31:00
Я рассматривал возможность использования substring() для определения частей строк 01, 02, чтобы связать их друг с другом, но как пойти дальше, я не знаю.
Спасибо за любые предложения