spark/scala 的默认 kryo 注册集

Default set of kryo registrations for spark/scala

我 运行 陷入困境,许多 类 需要 kryo 注册。 common spark 类 的默认注册是否有帮助?

这是我迄今为止必须添加的 类 的列表 - 而且看不到尽头:

  conf.registerKryoClasses(Array(classOf[Row]))
  conf.registerKryoClasses(Array(classOf[InternalRow]))
  conf.registerKryoClasses(Array(classOf[Array[InternalRow]]))
  conf.registerKryoClasses(Array(classOf[scala.reflect.ClassTag$$anon]))
  conf.registerKryoClasses(Array(classOf[org.apache.spark.sql.catalyst.expressions.UnsafeRow]))
  conf.registerKryoClasses(Array(classOf[Array[org.apache.spark.sql.types.StructType]]))
  conf.registerKryoClasses(Array(classOf[org.apache.spark.sql.types.StructType]))

这并不是真正的答案,而是对该行为的部分解释。有一些旧代码迫使 kryo 变得特别:

 val conf: SparkConf = new SparkConf()
  .set("spark.kryo.registrationRequired", "true")

我删除了该行,然后 "registration missing" 投诉神奇地消失了。