2016-05-01 31 views
0

我有一個簡單的spark streaming作業,用於跟蹤HDFS目錄,讀取新添加的文件並將其發送到Kafka無法在火花流作業中導入kafkaProducer

當提交spark工作時,它不起作用並拋出以下異常。

ImportError: cannot import name KafkaProducer

這裏是工作的代碼(http://pastebin.com/mpKkMkph

的錯誤是明顯的。該腳本無法導入kafkaProducer。問題是我可以從python shell導入它沒有任何問題。

+0

你能提供你的kafka生產者代碼片段嗎?這將有助於調試問題! – avr

+0

將您的導入語句從'from kafka import KafkaProducer'改爲'import kafka' **或**您可以從您的KafkaProducer初始化語句中移除對kafka的引用,即您的最終語句看起來像'producer = KafkaProducer(bootstrap_servers =「Broker_list」) '。希望這解決了你的依賴性問題! – avr

+0

我treid'導入kafka'和我得到了這個錯誤'AttributeError:'模塊'對象沒有屬性'KafkaProducer''。我試圖刪除生產者初始化語句中的kafka,但同樣的錯誤仍然存​​在。 – Fanooos

回答

0

最後,我可以解決這個問題,但解決方案非常奇怪,我沒有解釋發生了什麼。

我運行這個命令cat my_script.py > new_script.py然後我使用新文件提交了作業。

每件事情都很好,但正如我上面提到的,我對這個問題沒有任何解釋。

另一件需要注意的事情是,使用正常的cp命令複製文件也不起作用。只有cat的內容到另一個文件。

這是我第二次用python腳本來面對這個問題,我希望任何人有任何插圖。