Spark内部类Kryo注册



我是Spark的新手,我正在使用带有kryo的2.4.4。火花作业将写入大约100个零件文件,然后通过抛出以下异常而失败

Caused by: java.lang.IllegalArgumentException: Class is not registered: 
org.apache.spark.sql.execution.datasources.WriteTaskResult
Note: To register this class use: 
kryo.register(org.apache.spark.sql.execution.datasources.WriteTaskResult.class);

如异常中所建议的,我可以注册

kryo.register(org.apache.spark.sql.execution.datasources.WriteTaskResult.class);

但问题是,它是一个内部Spark类,我的问题是,注册这个内部类可以吗?只要它是一个内部类,就不应该由Kryo或Spark自己处理吗?解决这个问题的正确方法是什么?

谢谢,Raj

我注册了以下类,它在中工作

kryo.register(classOf[org.apache.spark.sql.execution.datasources.WriteTaskResult])
kryo.register(classOf[org.apache.spark.sql.execution.datasources.ExecutedWriteSummary])
kryo.register(classOf[org.apache.spark.sql.execution.datasources.BasicWriteTaskStats])
kryo.register(classOf[org.apache.spark.internal.io.FileCommitProtocol])
kryo.register(classOf[org.apache.spark.sql.catalyst.expressions.UnsafeRow])

谢谢Raj

最新更新