3
星火文檔指出,所有你需要做的就是註冊類,並添加兩個變量對conf:KRYO在Apache的星火
import com.esotericsoftware.kryo.Kryo
import org.apache.spark.serializer.KryoRegistrator
class MyRegistrator extends KryoRegistrator {
override def registerClasses(kryo: Kryo) {
kryo.register(classOf[MyClass1])
kryo.register(classOf[MyClass2])
}
}
val conf = new SparkConf().setMaster(...).setAppName(...)
conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
conf.set("spark.kryo.registrator", "mypackage.MyRegistrator")
val sc = new SparkContext(conf)
我已經在我的代碼來實現這一點,但我仍然得到序列化錯誤當嘗試對(文本,文本)的鍵/值序列文件進行排序時。我的MyRegistrator的版本是這樣的:
class MyRegistrator extends KryoRegistrator {
override def registerClasses(kryo: Kryo) {
kryo.register(classOf[Text])
}
}
我還添加了MyRegistrator登錄我看不出有任何日誌語句。我還故意拼寫MyRegistrator的名稱,並且該作業不會出錯。這比文檔允許的更多。還有什麼我需要做的?
我正在使用Apache Spark 1.0.2。
謝謝