scala - Spark 内部类 Kryo 注册

标签 scala apache-spark serialization kryo

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

谢谢, 拉吉

最佳答案

我注册了以下类(class)并且有效

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

谢谢 拉吉

关于scala - Spark 内部类 Kryo 注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61625504/

相关文章:

apache-spark - 如何选择所有列而不是硬编码每一列?

c# - 从 BsonDocument 反序列化为字符串并序列化回 BsonDocument

c# - 使用 JSON.net 处理(反)序列化主数据

ScalaFX:如何将图像对象转换为字节数组

scala - 如何在(akka)Actor 中处理多个 promise ?

scala - Scala 中存在类型的下划线

apache-spark - 修复 spark 结构化流中的检查点

scala - ScalaTest 3 中的评估和生产去了哪里?

apache-spark - Spark 2.x + Tika : java. lang.NoSuchMethodError : org. apache.commons.compress.archivers.ArchiveStreamFactory.detect

python - Django休息框架: serializer does not include id field in response data