Ich habe Funke Job wie:Testfunken Jobs mit Mocks
stream.
..do some stuff..
map(HbaseEventProcesser.process)
jetzt HbaseEventProcesser ein scala Objekt ist (Singleton). Es gibt also keine Probleme mit der Serialisierung.
Das Problem besteht darin, dass der Funke-Job getestet wird (holdenkarau spark-test lib wird verwendet). Ich möchte HbaseEventProcessor mit einer anderen Implementierung vortäuschen. Ich habe zwei Ansätze
- Durchlauf-Implementierung Job (als Konstruktorargument und als Methoden in Karte) aufgerufen. Dieses Problem bei der Serialisierung Problem
- Verwenden Sie PowerMock. Leider ist der Deepcopy-Vorgang fehlgeschlagen, wenn SharedSparkContext verwendet wird.
Gibt es noch andere Problemumgehungen?
dies ist das erste, was ich tat. Es verursacht jedoch Serialisierungsproblem. I meen: Klasse HBaseEventProcessor erweitern EventProcessor und SparkJob (EventProcessor: EventProcessor) {.... rdd.map (eventProcessor)} – Natalia
haben Sie versucht, es serialisierbar zu machen: 'Klasse HBaseEventProcessor erweitert java.io.Serializable mit EventProcessor '? –
Sicher, als Ergebnis bekomme ich: \t verursacht durch: java.io.NotSerializableException .....- Objekt (Klasse com ...... ClientDerivedEventsStreamingJob $$ anonfun $ preStream $ 2 $$ anonfun $ 9,) –
Natalia