Spark Structured Streaming 排名
Ranking in Spark Structured Streaming
我有一个由这样的数据组成的数据流。
{Student, Class, CurrentScore}
我想使用滑动window来计算这些事件的统计数据:
spark.readStream(...).withColumn("processingTime",..).
window(col("processingTime"), "30 minutes", "5 minutes"), col("class"))
但是现在我想在这个window中每个class拿出前3名的学生,但是Structured Streaming显然不支持rank()
我该如何解决这个问题?
流式数据集仅在聚合后和在完整输出模式下支持排序操作(还有 rank());直接来自手册。
然而,完全输出模式并不是一种现实的工作方式。我宁愿写到最终转换成柱状格式的位置,然后用合适的查询工具进行查询和排序。
我有一个由这样的数据组成的数据流。
{Student, Class, CurrentScore}
我想使用滑动window来计算这些事件的统计数据:
spark.readStream(...).withColumn("processingTime",..).
window(col("processingTime"), "30 minutes", "5 minutes"), col("class"))
但是现在我想在这个window中每个class拿出前3名的学生,但是Structured Streaming显然不支持rank()
我该如何解决这个问题?
流式数据集仅在聚合后和在完整输出模式下支持排序操作(还有 rank());直接来自手册。
然而,完全输出模式并不是一种现实的工作方式。我宁愿写到最终转换成柱状格式的位置,然后用合适的查询工具进行查询和排序。