Size: a a a

2020 April 04

ПФ

Паша Финкельштейн... in Moscow Spark
для сериализации и десериализации
источник

ПФ

Паша Финкельштейн... in Moscow Spark
представь что ты запускаешь обработку миллирада значений
источник

ПФ

Паша Финкельштейн... in Moscow Spark
читаешь условно из кафки, пишешь условно в орк
источник

ПФ

Паша Финкельштейн... in Moscow Spark
тебе же надо данные между нодами перевидывать
источник

ПФ

Паша Финкельштейн... in Moscow Spark
вот для этого и кодогенерация
источник

GP

Grigory Pomadchin in Moscow Spark
ну в теории для этого не надо кодогенить
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Чтобы всё конвертнуть в UnsafeInternalRow, а потом обратно
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Grigory Pomadchin
ну в теории для этого не надо кодогенить
как?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Типа джавовая сериализация?
источник

GP

Grigory Pomadchin in Moscow Spark
да там патматч тупой гдето стоит и одной функцией конвретит и использует крайо или джава сериализацию
источник

N

Nikolay in Moscow Spark
ну это да. для сериализации может. хотя непонятно как. он должен найти кодек для преобразования типа
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Grigory Pomadchin
да там патматч тупой гдето стоит и одной функцией конвретит и использует крайо или джава сериализацию
только для джава кода. Для скалы — нет
источник

GP

Grigory Pomadchin in Moscow Spark
Nikolay
ну это да. для сериализации может. хотя непонятно как. он должен найти кодек для преобразования типа
ну это из контекста выловит
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Для скалы это работает так:
неименованные туплы — это просто кортеж энкодеров.
для примитивов энкодеры заданы
для кейс-классов длинной больше чем пять уже генерируюсят сериалайзеры
источник

ПФ

Паша Финкельштейн... in Moscow Spark
там аккуратненько читаются тайптеги, разбираются на типы дженериков и так далее и сериализация — это сериализация каждого поля отдельно, а десериализация — это вызов конструктора с аргументами, переданными в правильном порядке
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Ну а я написал похожу балалайку для котлина, там тоже можно тайптеги если очень хочется )
источник

ПФ

Паша Финкельштейн... in Moscow Spark
А вот для джавы сериализация работает хуже — только при условии наличия пустого конструктора и сеттера для каждого поля
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Но да, зато там можно использовать kryo и тогда не надо кодогенерить
источник

GP

Grigory Pomadchin in Moscow Spark
Паша Финкельштейн
там аккуратненько читаются тайптеги, разбираются на типы дженериков и так далее и сериализация — это сериализация каждого поля отдельно, а десериализация — это вызов конструктора с аргументами, переданными в правильном порядке
а что ты под кодогеном подращумеваешь?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
но кто-то мне когда-то говорил, что это работает медленнее чем наскальная. И я в это в целом верю — в скале мы получаем прямо готовый код декомпилятора бинарных данных, а крио — это дженерик решение
источник