mit behalte ichNoClassDefFoundError wenn avro in Funken Schale
java.lang.NoClassDefFoundError: org/apache/avro/mapred/AvroWrapper
bekommen, wenn show()
auf einem Dataframe-Objekt aufrufen. Ich versuche das durch die Schale (Spark-Shell - Master Garn) zu tun. Ich kann sehen, dass die Shell das Schema beim Erstellen des DataFrame-Objekts erkennt, aber wenn ich Aktionen für die Daten ausführe, wird immer die NoClassDefFoundError
ausgelöst, wenn versucht wird, die AvroWrapper
zu instanziieren. Ich habe versucht, avro-mapred-1.8.0.jar
in meinem $HDFS_USER/lib
Verzeichnis auf dem Cluster hinzuzufügen und es sogar mit der Option --jar beim Starten der Shell enthalten. Keine dieser Optionen funktionierte. Jeder Rat würde sehr geschätzt werden. Im Folgenden finden Sie Beispielcode:
scala> import org.apache.spark.sql._
scala> import com.databricks.spark.avro._
scala> val sqc = new SQLContext(sc)
scala> val df = sqc.read.avro("my_avro_file") // recognizes the schema and creates the DataFrame object
scala> df.show // this is where I get NoClassDefFoundError
scheint es nur dort zu sitzen. wird nicht weiter kommen. 'org.apache.avro # avro-mapred als Abhängigkeit hinzugefügt ' ' com.databricks # spark-avro_2.10 hinzugefügt als Abhängigkeit' ':: Auflösung Abhängigkeiten :: org.apache.spark # spark-submit -parent; 1.0' \t 'confs: [default]' – Pudge
Das ist komisch. Können Sie den gesamten Befehl einfügen, den Sie zum Starten von Spark-Shell verwenden? –
Entschuldigung für die verzögerte Antwort Ich musste die Aufgaben für ein paar Tage wechseln. Hier ist der Befehl, den ich ausführe 'spark-shell --mastergarn --packages org.apache.avro: avro-mapped: 1.7.7, com.databricks: spark-avro_2.10: 2.0.1'. Auch nicht sicher, ob es einen Unterschied macht, aber wir führen CDH 5.6. Danke noch einmal. – Pudge