简体   繁体   English

Spark内部class Kryo注册

[英]Spark Internal class Kryo registration

I'm new to Spark I'm using 2.4.4 with kryo.我是 Spark 的新手,我正在使用 2.4.4 和 kryo。 The spark job will write around 100 part files and then fails by throwing the following exception 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);

As suggested in the exception I can register正如异常中所建议的,我可以注册

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

But the problem is, it is an internal Spark class, the question I have is, is it ok to register this internal class?但问题是,它是内部 Spark class,我的问题是,可以注册这个内部 class 吗? shouldn't it be taken care of by Kryo or Spark itself as long as it is an internal class?只要它是内部 class,它不应该由 Kryo 或 Spark 本身来处理吗? What is the right way to fix this problem?解决此问题的正确方法是什么?

Thanks, Raj谢谢,拉吉

I registered the following classes and it worked我注册了以下课程并且有效

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

Thanks Raj谢谢拉吉

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM