У меня есть искровая работа, как:тестирования искровых работ с издевается
stream.
..do some stuff..
map(HbaseEventProcesser.process)
сейчас HbaseEventProcesser является объектом Scala (Singleton). Таким образом, нет проблем с сериализацией.
Проблема в тестировании этой искровой работы (используется holdenkarau spark-test lib). Я хочу высмеять HbaseEventProcessor с некоторой другой реализацией. Я пробовал два подхода:
- Проводить имплентацию в искровое задание (как аргумент конструктора, а не метод вызова внутри карты). Это вызывает проблему с проблемой сериализации
- использование силаMock. К сожалению, операция deepcopy завершилась неудачно, если используется SharedSparkContext.
Есть ли другие способы обхода?
это первое, что я сделал. Однако это вызывает проблему сериализации. I meen: чтобы класс HBaseEventProcessor расширял EventProcessor и SparkJob (eventProcessor: EventProcessor) {.... rdd.map (eventProcessor)} – Natalia
Вы пытались сделать его сериализуемым: 'class HBaseEventProcessor расширяет java.io.Serializable с помощью EventProcessor '? –
Уверен, в результате я получаю: \t Вызвано: java.io.NotSerializableException .....- object (класс com ...... ClientDerivedEventsStreamingJob $$ anonfun $ preStream $ 2 $$ anonfun $ 9,) –
Natalia