Ich bin ziemlich neu, um zu funken, und ich versuche, einen DStream zu erhalten, der als ein json von einem kafka Thema strukturiert wird, und ich will den Inhalt jedes json analysieren. Das JSON, das ich erhalte, ist ungefähr so:
%Vor%Ich versuche nur das Ident-Feld zu extrahieren, zumindest jetzt und ich benutze die lift-json-Bibliothek, um die Daten zu analysieren. Mein Programm sieht so aus:
%Vor%aber es wirft mir die Ausnahme unten:
%Vor%Die Sache ist, dass wenn es ohne Funken (Lesen aus einer Datei) gleich läuft, es perfekt funktioniert. Das Problem beginnt, wenn ich versuche, es in ein Funkenprogramm zu bringen. Wenn ich die Parser-Funktion in etwa so ändere:
%Vor%Es funktioniert auch. Aber wenn ich versuche, den eigentlichen String zu extrahieren, bekomme ich den gleichen Fehler.
Danke für Ihre Hilfe. Ich hoffe ich habe es gut erklärt.
Dies passiert, weil Ihnen eine Scala-Reflect-Abhängigkeit fehlt, die zum Serialisieren / Deserialisieren des Datensatzes benötigt wird. Versuchen Sie, das scala reflect jar hinzuzufügen, das der Spark-Version entspricht.
Tipp: "org.scala-lang"% "scala-reflect"% Version.scala
Oh, ein gutes altes Problem: -)
Grundsätzlich deutet dies auf ein Versions-Problem hin: Eine Ihrer Abhängigkeiten ist nicht kompatibel mit dem Scala-Compiler, den Sie gerade verwenden. Bist du auf 2.10?
Versuchen Sie, den Ausdruck "NoClassDefFoundError: scala / reflect / ClassManifest" zu googlen, ich bin sicher, dass Sie mehr als genug Beschreibung zu dem Problem finden werden.
Tags und Links scala json apache-spark spark-streaming