Пример состояния оператора Флинка не скомпилируется (java.lang.Iterable против scala.collection.Iterable) - PullRequest
0 голосов
/ 14 декабря 2018

Я работаю с Apache Flink 1.6, и я пытаюсь реализовать функцию обработки с сохранением состояния, которая использует состояние оператора Flink, как описано здесь: https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/state/state.html#stateful-source-functions

Однако пример на этой странице не будетскомпилируйте для меня:

enter image description here

Так что причина в том, что checkpointedState.get() вернет java.lang.Iterable, а не scala.collection.Iterable.Что является причиной этого?Я ошибся где-то в пути или код примера неправильный?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

checkpointedState.get() вернет java.lang.Iterable, потому что API контрольной точки Flink запрограммирован на java вместо scala.Похоже, что пример неправильный, и вы можете создать проблему для JIRA для сообщества.

Решение похоже на то, что сказал пользователь 826955, вы можете использовать scala.collection.JavaConversions._ для преобразования java.lang.Iterable в коллекцию scala.

0 голосов
/ 14 декабря 2018

Хорошо, я не знаю, если это должно быть ясно / воспринято как должное, но после добавления этого:

import scala.collection.JavaConversions._

Я смог использовать java-итератор в качестве обычной коллекции scala, ипример работал просто отлично.

...