静态数据框上的mapGroupsWithState函数为何?

问题描述

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

根据文档(https://spark.apache.org/docs/2.2.0/api/java/org/apache/spark/sql/streaming/GroupState.html

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

那么为什么静态DataFrame中存在此方法

解决方法

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