[ https://issues.apache.org/jira/browse/SPARK-15489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15297087#comment-15297087
]
Amit Sela commented on SPARK-15489:
-----------------------------------
This is my registrator:
public class ImmutableRegistrator implements KryoRegistrator {
@Override
public void registerClasses(Kryo kryo) {
try {
kryo.register(Class.forName("java.util.Collections$UnmodifiableCollection"),
new UnmodifiableCollectionsSerializer());
kryo.register(ImmutableList.class, new ImmutableListSerializer());
} catch (ClassNotFoundException e) {
//
}
}
}
And I register with:
conf.set("spark.kryo.registrator", ImmutableRegistrator.class.getCanonicalName())
When KryoSerializer.deserializeStream is called I see my registrar in KryoSerializerInstance,
but when KryoSerializer.deserialize[T: ClassTag](bytes: ByteBuffer) is called I'm not so sure,
if the instance is this.ks then no, I don't see my registrar.
> Dataset kryo encoder fails on Collections$UnmodifiableCollection
> ----------------------------------------------------------------
>
> Key: SPARK-15489
> URL: https://issues.apache.org/jira/browse/SPARK-15489
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 1.6.1
> Reporter: Amit Sela
>
> When using Encoders with kryo to encode generically typed Objects in the following manner:
> public static <T> Encoder<T> encoder() {
> return Encoders.kryo((Class<T>) Object.class);
> }
> I get a decoding exception when trying to decode `java.util.Collections$UnmodifiableCollection`,
which probably comes from Guava's `ImmutableList`.
> This happens when running with master = local[1]. Same code had no problems with RDD
api.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org
|