Я пытаюсь использовать Spark Streaming и Spark SQL с Python API.
У меня есть файл, который постоянно редактируется, добавляя несколько строк каждые случайные N секунд.
Этот файл может быть JSON, XML, CSV или TXT, даже таблицей SQL: я совершенно свободен в выборе наилучшего решения для моей ситуации.
У меня есть определенное количество полей, около 4-5. Возьмите эту таблицу в качестве примера:
+-------+------+-------+--------------------+
| event | id | alert | datetime |
+-------+------+-------+--------------------+
| reg | 1 | def1 | 06.06.17-17.24.30 |
+-------+------+-------+--------------------+
| alt | 2 | def2 | 06.06.17-17.25.11 |
+-------+------+-------+--------------------+
| mot | 3 | def5 | 06.06.17-17.26.01 |
+-------+------+-------+--------------------+
| mot | 4 | def5 | 06.06.17-17.26.01 |
+-------+------+-------+--------------------+
Я хочу транслировать с помощью Spark Streaming только новые строки . Таким образом, если я добавлю 2 новые строки, в следующий раз я захочу передать только эти две строки вместо всего файла (уже потокового)
Более того, я хочу отфильтровать или вычислить SQL-запрос Spark по всему файлу каждый раз, когда обнаруживается новая строка. Например, я хочу выбрать событие "mot"
только в том случае, если оно появляется два раза за 10 минут, и этот запрос необходимо повторять при каждом изменении файла и получении новых данных.
Могут ли Spark Streaming и Spark SQL обрабатывать такие ситуации? И как?