Я практикую реализацию собственного собственного структурированного потокового источника V2 в Java, который просто читает текст из сокета и анализирует его в JavaBean с двумя полями "field1" и "field2".
При запускеSimpleQuery
StreamingQuery query = inStream.groupBy("field1").count().writeStream()
.outputMode("complete")
.format("console")
.start();
Я получаю следующую ошибку
org.apache.spark.SparkException: Task not serializable
...
Caused by java.io.NotSerializableException: CustomStreamSource.SocketSourceV2$SocketBatchReader
Serialization stack:
...
У меня есть пара переменных экземпляра, которые не могут быть сериализованы в моем пользовательском SocketBatchReader, а именно Socket
и Thread
,Есть ли что-нибудь вокруг этого?Кроме того, исходная реализация пакетного считывателя сокетов , похоже, тоже не реализует Serializable
.