Я использую сериализатор kryo как сериализатор в проектных работах со искрой и написан на scala. Я регистрирую все классы, которые использую в своем проекте, и есть один класс, который не сериализуется и не десирализуется, который связан с хэш-картой. Регистрация связанной хеш-карты:
kryo.register(scala.collection.mutable.linkedHashMap[_, _])
Я получаю свои данные из эластичного, а тип свойств времени выполнения связан с HashMap. Например, документ выглядит так: человек {возраст: 20, имя: "ярден"}, сопоставляется с linkedHashMap[String, Any] и если есть другой объект лично и т. д.
Когда я хочу десериализовать данные, которые хранятся как linkedHashMap (например, собирать RDD), результатом является просто пустой объект.
Я пытаюсь использовать MapSerializer (другой параметр в функции регистрации), но это не удается, потому что это для java linkedHashMap. Я пытаюсь найти подходящий сериализатор для scala linkedHashMap, но не нашел. Существует решение каждый раз, когда я получаю LinkedHashMap, конвертирую его в карту, и это работает, но это не очень хорошая практика. Я думаю о том, что, возможно, есть способ заставить тип времени выполнения быть картой, а не linkedHashMap, но я не нашел никакого решения.
Я считаю, что лучше всего найти сериализатор, который подходит для linkedHashMap scala, но я его не нашел.
Любое решение вещей, которые мне не удалось решить, будет приветствоваться.