Structured Streamingで `flatMapGroupsWithState` を使用する主な目的はどれか。

flatMapGroupsWithStateは、キーごとの任意の状態(State)を保持・更新しながら、複雑なロジックに基づいて複数のレコードを出力するために使用される。