簡體   English   中英

Spark序列化程序Kryo setRegistrationRequired(false)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM