2017-06-19 3 views
0

Ich bin in einer Ausnahme versucht, ein KieBase Objekt in Spark zu serialisieren.Spark & ​​Drools - Wie Kiebase mit Kryo zu serialisieren

Wenn ich führen den folgenden Code:

val kieBase = kieContainer.getKieBase 
val broadcastKieBase = spark.sparkContext.broadcast(kieBase) 

A ConcurrentModificationException wird

angehoben

Exception in thread "main" com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException

Beim Umschauen fand ich auch this is a known problem, aber immer noch keine Lösung.

Kann jemand eine KieBase Instanz mit Kryo serialisieren?

Antwort

0

KieBase kann nicht serialisiert werden. Erstellen Sie stattdessen eine Singleton-Klasse und lassen Sie die KieBase im Executor inited. Jeder Executor hat eine eigene Instanz.

+0

KieBase kann erfolgreich mit 'JavaSerializer' serialisiert werden. Zum Beispiel 'kryo.register (KieBase.class, new JavaSerializer());' die Frage ist, wie man es nur mit Kryo macht. – freedev

Verwandte Themen