Spark 内部 class Kryo 注册
Spark Internal class Kryo registration
我是 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 class,我的问题是,注册这个内部class可以吗?只要它是内部 class,它不应该由 Kryo 或 Spark 自己处理吗?解决此问题的正确方法是什么?
谢谢,
拉吉
我注册了以下 类 并且有效
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])
谢谢
拉吉
我是 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 class,我的问题是,注册这个内部class可以吗?只要它是内部 class,它不应该由 Kryo 或 Spark 自己处理吗?解决此问题的正确方法是什么?
谢谢, 拉吉
我注册了以下 类 并且有效
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])
谢谢 拉吉