Spark Внутренний класс Регистрация Kryo - PullRequest
0 голосов
/ 06 мая 2020

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

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

1 Ответ

0 голосов
/ 06 мая 2020

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

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

Спасибо Raj

...