Apache spark 我可以在spark中存储有序队列吗?
我正在开发一个作业调度程序,用于实时数据,总共可以是20-30米。我想维护一个优先级队列,让所有人都决定先发送哪些数据。优先级队列应该能够容纳如此大量的数据。 这是否可能在spark中按顺序保存此数据。Apache spark 我可以在spark中存储有序队列吗?,apache-spark,bigdata,spark-streaming,scheduler,priority-queue,Apache Spark,Bigdata,Spark Streaming,Scheduler,Priority Queue,我正在开发一个作业调度程序,用于实时数据,总共可以是20-30米。我想维护一个优先级队列,让所有人都决定先发送哪些数据。优先级队列应该能够容纳如此大量的数据。 这是否可能在spark中按顺序保存此数据。 或者还有其他出路吗?优先级队列只是一个有序的项目列表。使用spark/spark-sql,您可以从数据框中进行选择,并指定排序顺序和限制,例如,将单个项目出列。如果要不断查询数据,请确保缓存数据帧 考虑spark中名为priority_queue的简化表,如下所示: id | pri
或者还有其他出路吗?优先级队列只是一个有序的项目列表。使用spark/spark-sql,您可以从数据框中进行选择,并指定排序顺序和限制,例如,将单个项目出列。如果要不断查询数据,请确保缓存数据帧 考虑spark中名为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.sqlselect*从优先级队列中按优先级、日期和添加的限制x获取前x项
然后从topn和spark.sqldelete创建一个临时表,从优先级_队列中选择topn中的id