#apache-spark #apache-spark-sql #spark-structured-streaming
#apache-spark #apache-spark-sql #spark-структурированная потоковая передача
Вопрос:
Поддерживает ли Spark SQL (DSL, а не API) функцию управления окнами в структурированной потоковой передаче? Нечто подобное в Flink выглядит как:
SELECT user, SUM(amount) FROM Orders GROUP BY TUMBLE(proctime,
INTERVAL '1' DAY), user
Единственный пример SQL, который я нашел на официальном сайте структурированной потоковой передачи, был представлен ниже, и он не включал пример функции управления окнами:
df.createOrReplaceTempView("updates")
spark.sql("select count(*) from updates") // returns another streaming DF
Ответ №1:
В Spark еще нет функций управления окнами через DSL в структурированной потоковой передаче в версии 2.4. В Apache Flink они есть, поскольку он использует анализатор SQL Apache Calcite и поскольку Flink использует SQL для потоковой передачи.
Однако эта функция может быть добавлена в будущих версиях.
Лучшие
Комментарии:
1. Спасибо за ответ, но я не думаю, что ваше утверждение о поддержке окон верно. Spark structured streaming поддерживает работу с окнами во время события (смотрите здесь: spark.apache.org/docs/latest /… ). Также поддержка окон в Calcite отличается от функции окна в модели потока данных. Я обновил заголовок вопроса, чтобы прояснить этот момент.
2. Я знаю, что у вас есть поддержка даже time и windowing, но дело в том, что вы не можете выразить эти операции через SQL DSL в Spark 2.4, как я сказал. Извините, если я не понял