Scala 静态数据帧上的mapGroupsWithState函数及其原因?

Scala 静态数据帧上的mapGroupsWithState函数及其原因?,scala,spark-structured-streaming,stateful,Scala,Spark Structured Streaming,Stateful,何时需要在静态数据帧上使用mapGroupsWithState函数 根据文档() 对于批处理数据集,只有一个调用和状态 对象将为空,因为没有先前的状态。基本上,为了 批处理数据集,[map/flatMap]GroupsWithState相当于 [map/flatMap]组以及对状态和/或超时的任何更新 没有效果 那么为什么静态数据帧会有这种方法呢?Spark正试图确保批处理和流式处理的查询运行相同——大多数操作同时支持批处理和流式处理。(营销词是“统一批处理和流式处理”。)这是“尽力而为”,流式

何时需要在静态数据帧上使用mapGroupsWithState函数

根据文档()

对于批处理数据集,只有一个调用和状态 对象将为空,因为没有先前的状态。基本上,为了 批处理数据集,[map/flatMap]GroupsWithState相当于 [map/flatMap]组以及对状态和/或超时的任何更新 没有效果


那么为什么静态数据帧会有这种方法呢?

Spark正试图确保批处理和流式处理的查询运行相同——大多数操作同时支持批处理和流式处理。(营销词是“统一批处理和流式处理”。)这是“尽力而为”,流式处理查询有现实的限制,因此流式处理查询中不支持某些操作或工作负载。

我猜是因为没有“批处理/静态数据集”和“流式处理数据集”。只有一个数据集。(也适用于数据帧)