[英]Spark Serializer Kryo setRegistrationRequired(false)
我在Scala/Spark
程序中使用weka.mi.MISVM
,需要序列化我的內核以供以后重用。
為此,我使用Kryo
:
conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
conf.registerKryoClasses(
Array(classOf[Multiset], classOf[MISVM], classOf[(_,_)],
classOf[Map[_,_]], classOf[Array[_]])
)
...
val patterns: RDD[(Multiset, MISVM)] = ...
patterns.saveAsObjectFile(options.get.out)
(多集是我的對象之一)
序列化工作良好,但是當我嘗試使用以下方法讀取內核時:
objectFile[(Multiset, MISVM)](sc, path)
我收到此錯誤:
com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 13994
我認為這是因為我沒有注冊MISVM使用的所有類,並且我讀到Kryo.setRegistrationRequired(false)
可能是一種解決方案,但我不了解如何在我的情況下使用它。
如何定義conf
KryoSerializer
必須使用setRegistrationRequired(false)
?
嘗試這個:
conf.set("spark.serializer", org.apache.spark.serializer.KryoSerializer")
conf.set("spark.kryo.registrationRequired", "false")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.