Size: a a a

2020 August 25

GP

Grigory Pomadchin in Data Engineers
Жмака
У меня есть пакет в котором много кейс классов. Вместо того, чтобы вручную их писать в регистрации kryo в конфиге спарка я пытаюсь через reflections получить массив из этих классов и этот массив сунуть в регистрацию kryo. И созданный массив не получается привести к скаловскому Array[Class[_]]
если у тебя кейс классы то не надо руками их писать
источник

GP

Grigory Pomadchin in Data Engineers
org.apache.spark.serializer.KryoSerializer справится
источник

GP

Grigory Pomadchin in Data Engineers
все кейс классы экстендят сразу Product и Serializable, поэтому дефолтный регистратор подцепит это https://github.com/apache/spark/blob/26e6574d58429add645db820a83b70ef9dcd49fe/core/src/main/scala/org/apache/spark/serializer/KryoSerializer.scala
источник

Ж

Жмака in Data Engineers
Тогда зачем они пишут: Kryo serialization: Spark can also use the Kryo library (version 4) to serialize objects more quickly. Kryo is significantly faster and more compact than Java serialization (often as much as 10x), but does not support all Serializable types and requires you to register the classes you’ll use in the program in advance for best performance
источник

GP

Grigory Pomadchin in Data Engineers
Жмака
Тогда зачем они пишут: Kryo serialization: Spark can also use the Kryo library (version 4) to serialize objects more quickly. Kryo is significantly faster and more compact than Java serialization (often as much as 10x), but does not support all Serializable types and requires you to register the classes you’ll use in the program in advance for best performance
ну во первых регистратор регистрирует
источник

GP

Grigory Pomadchin in Data Engineers
если тебе не хватит его, заэкстендь- и допиши свои классы
источник

GP

Grigory Pomadchin in Data Engineers
Не все классы в программах могут экстендить сериалайзабл
источник

GP

Grigory Pomadchin in Data Engineers
А некоторые не эффективно делают это
источник

AS

Andrey Smirnov in Data Engineers
Grigory Pomadchin
если у тебя кейс классы то не надо руками их писать
это если внутри этих case class ничего необычного будет
источник

GP

Grigory Pomadchin in Data Engineers
Andrey Smirnov
это если внутри этих case class ничего необычного будет
ну да
источник

GP

Grigory Pomadchin in Data Engineers
Andrey Smirnov
это если внутри этих case class ничего необычного будет
но тогда не сериалайзабл будет кейс класс
источник

GP

Grigory Pomadchin in Data Engineers
Это подразумевает что все поля сериализуемы
источник

Ж

Жмака in Data Engineers
То есть если обычный кейс класс с прописанной схемой kryo сам их зарегистрирует потому что они с маркером serializable?
источник

GP

Grigory Pomadchin in Data Engineers
да
источник

GP

Grigory Pomadchin in Data Engineers
Жмака
То есть если обычный кейс класс с прописанной схемой kryo сам их зарегистрирует потому что они с маркером serializable?
дефолтный регистратор спарковый такой потому что
источник

GP

Grigory Pomadchin in Data Engineers
ты в конфиге спарка включи его
источник

Ж

Жмака in Data Engineers
То есть достаточно только в конфиге записать kryo? А спарк в логах пишет где то, какие классы он регистрирует в kryo?
источник

GP

Grigory Pomadchin in Data Engineers
в конфиге включай требование крайо юзать и регистратор укажи тот который я тебе скинул
источник

AE

Alexey Evdokimov in Data Engineers
эт чё, микропрофиль работает? хелидон взлетел, и его можно юзать?

если так, то хорошая новость
источник

GP

Grigory Pomadchin in Data Engineers
Жмака
То есть достаточно только в конфиге записать kryo? А спарк в логах пишет где то, какие классы он регистрирует в kryo?
Если требование врубишь - будет все; (попытается все сериалишовывать)
источник