Ответ 1
Вы можете избежать сериализации двумя способами:
-
Предполагая, что его значение может быть постоянным, поместите форматтер в
object
(сделав его "статическим" ). Это означало бы, что статическое значение может быть доступно для каждого рабочего, а не для сериализации драйвера и отправки работнику:object MyUtils { val dtFormatter = DateTimeFormatter.ofPattern("<some non-ISO pattern>") } import MyUtils._ logs.flatMap(fileContent => { // can safely use formatter here })
-
создать экземпляр для записи внутри анонимной функции. Это приводит к некоторому снижению производительности (поскольку создание экземпляра будет происходить снова и снова, на запись), поэтому используйте эту опцию только в том случае, если первое не может быть применено:
logs.flatMap(fileContent => { val dtFormatter = DateTimeFormatter.ofPattern("<some non-ISO pattern>") // use formatter here })