Очередь приоритетов - это просто упорядоченный список элементов.Используя spark / spark spark sql, вы можете выбрать из фрейма данных и указать порядок и предел сортировки (например, для удаления одного элемента из очереди).Если вы будете постоянно запрашивать данные, убедитесь, что вы кэшируете фрейм данных.
Рассмотрим упрощенную таблицу в искре с именем priority_queue
, например:
id | priority | date_added
1 1 3/15/2018 00:00:00
2 2 3/15/2015 00:01:00
...
Вы можете получить топ-х элементов с помощью val topn = spark.sql("select * from priority_queue order by priority, date_added limit x")
Затем создайте временную таблицу изtopn
и spark.sql("delete from priority_queue where id in (select id from topn)")