Spark内部类Kryo注册

问题描述 投票:0回答:1

我是Spark的新手,我在kryo中使用2.4.4。 Spark作业将写入约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自己处理吗?解决此问题的正确方法是什么?

谢谢,拉吉

scala apache-spark serialization kryo
1个回答
0
投票

我注册了以下课程,并且有效

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])

谢谢拉吉

© www.soinside.com 2019 - 2024. All rights reserved.