2016-05-01 5 views
0

Ich habe einen einfachen spark streaming Job, der ein Verzeichnis HDFS verfolgt, lesen Sie die neu hinzugefügten Dateien, und senden Sie es an Kafka.kann KafkaProducer nicht importieren in Spark-Streaming-Job

Beim Übermitteln des Funke-Jobs funktioniert es nicht und löst die folgende Ausnahme aus.

ImportError: cannot import name KafkaProducer

Hier ist der Code des Jobs (http://pastebin.com/mpKkMkph)

Der Fehler ist klar. Das Skript kann kafkaProducer nicht importieren. Das Problem ist, dass ich es ohne Probleme aus dem python shell importieren kann.

+0

Können Sie Ihren Kafka Producer Code Snippet bereitstellen? Es wird hilfreich sein, das Problem zu debuggen! – avr

+0

ändern Sie Ihre Import-Anweisung von 'von Kafka Import KafkaProducer' zu' Import Kafka' ** oder ** Sie können den Verweis auf Kafka aus Ihrer KafkaProducer Initialisierungsanweisung entfernen, dh Ihre Abschlusserklärung sieht wie folgt aus: producer = KafkaProducer (bootstrap_servers = "Broker_list") '. Hope this Löst Ihr Abhängigkeitsproblem! – avr

+0

Ich habe "Import Kafka" und ich habe diesen Fehler "AttributeError: 'Modul' Objekt hat kein Attribut 'KafkaProducer''. Ich habe versucht, das Kafka in der Erzeugerinitialisierungsanweisung zu entfernen, aber derselbe Fehler existiert noch. – Fanooos

Antwort

0

Endlich konnte ich das Problem lösen, aber die Lösung war sehr seltsam und ich habe keine Erklärung für das, was passiert ist.

Ich führe diesen Befehl cat my_script.py > new_script.py dann übermittelte ich den Job mit der neuen Datei.

Alles funktionierte gut, aber wie ich oben erwähnt habe ich keine Erklärung zu diesem Problem.

Eine andere Sache, die hier zu beachten ist, hat das Kopieren der Datei mit dem normalen cp Befehl auch nicht funktioniert. Nur cat der Inhalt in eine andere Datei.

Dies ist das zweite Mal, dass ich dieses Problem mit Python-Skripten habe ich hoffe, dass jeder eine Illustration dazu haben.

Verwandte Themen