使用 DataFrame 进行 Spark 状态流式处理

Spark Stateful Streaming with DataFrame

是否可以将 DataFrame 用作 Spark Streaming 的 State / StateSpec?当前的 StateSpec 实现似乎只允许键值对数据结构(mapWithState 等)。

我的 objective 是保持一个固定大小的 FIFO 缓冲区作为 StateSpec,每次新数据流进来时都会更新。我想在 Spark DataFrame API 中实现缓冲区,因为与 Spark ML 的兼容性。

我不完全确定您可以使用 Spark Streaming 做到这一点,但是使用较新的基于 Dataframe 的 Spark Structured Streaming,您可以表达得到更新的查询随着时间的推移,给定传入的数据流。

您可以阅读有关 Spark 结构化流的更多信息in the official documentation

如果您对与 SparkML 的互操作性感兴趣以部署经过训练的模型,您可能也对 this article 感兴趣。