Использование набора данных в «MapGroupsWithState» Spark SQL

#apache-spark #apache-spark-sql #spark-structured-streaming

#apache-spark #apache-spark-sql #spark-structured-streaming

Вопрос:

У меня есть события с "id and Map[String, List]" данными. Я группирую эти данные по id . Затем я вычисляю что-то с помощью «mapgroupswithstate».

Могу ли я использовать from_json() метод в mapgroupswithstate ? Итак, могу ли я использовать dataset/dataframe в mapgroupswithstate ?

Например;

 df.groupBy().mapgroupswithstate{
   val anotherDF = events.toDF
   ... other operations...
}
  

Ответ №1:

Могу ли я использовать метод from_json() в mapgroupswithstate? Итак, могу ли я использовать dataset / dataframe в mapgroupswithstate?

Ответ на оба вопроса — Нет (свободно). Не стандартным способом. Когда вы работаете в mapgroupswithstate, вы переходите к операциям уровня исполнителя, где вы можете написать пользовательский код без абстракции фрейма данных.

Комментарии:

1. Кроме того, я хочу задать еще один вопрос. Когда я использую mapgroupswithstate без «тайм-аута» (также это режим обновления), состояние будет расти бесконечно? Например, у меня есть 100 пользователей, и я сохраняю 100 состояний для этих пользователей. Каждое состояние будет обновляться с каждым полученным данными. В этом случае все состояния растут бесконечно?

2. Без тайм-аута обновления состояния каждой группы должны сохраняться при вызове потокового запроса. Я не пробовал это лично.