Spark Внутренний класс Kryo регистрация

Я новичок в Spark. Я использую 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, если это внутренний класс? Как правильно решить эту проблему?

Спасибо, Радж


person Raj    schedule 06.05.2020    source источник


Ответы (1)


Я зарегистрировал следующие классы, и это сработало

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

Спасибо, Радж.

person Raj    schedule 06.05.2020