Я читал об оптимизации Spark и не понимал, как Вольфрам и сериализация, такие как Kryo, работают вместе.
Некоторые заметки из источников, которые я читал, заставили меня задуматься над этим вопросом:
«Представление Tungsten значительно меньше, чем объекты, сериализованные с использованием сериализаторов Java или даже Kryo». источник-hortonworks
«С помощью генерации кода мы можем увеличить пропускную способность сериализации и, в свою очередь, увеличить пропускную способность сети в случайном порядке». блоки исходных данных
Они этого не делают, за исключением некоторых пограничных случаев, таких как Encoders.kryo
.
Tungsten использует собственный двоичный формат хранения и соответствующие инструменты serde (Encoders
). Вот почему он может быть быстрее и эффективнее использовать память в стандартном режиме работы.
Спасибо. Итак, как используется Tungsten, когда «по умолчанию Spark сериализует объекты с использованием инфраструктуры Java's ObjectOutputStream»? @ user9963938