我能夠提交并運行我撰寫的 pyspark 腳本。
運行腳本 pyspark_client.py 的命令:
? clear;/opt/spark/bin/pyspark < pyspark_client.py
我還可以單獨運行 python-kafka 腳本而沒有任何問題。這意味著我已經安裝了模塊。
但是當我將兩個腳本合并并將其提交給 pyspark 時,問題就出現了。
from pyspark import SparkContext
import pyspark
from pyspark.sql.session import SparkSession
from pyspark.streaming import StreamingContext
from pyspark.sql.functions import *
from json import dumps
from kafka import KafkaProducer
它找不到 python-kafka 模塊。錯誤是:
Traceback (most recent call last):
File "<stdin>", line 8, in <module>
ModuleNotFoundError: No module named 'kafka'
我要做的就是將每個視窗中的推文計數寫入 kafka 主題。我從視窗獲取主題和計數的方式是遍歷視窗 df 的行。
topic,count = row.__getitem__("hashtag").__getitem__("text"),row.__getitem__("count")
錯誤的最小可重現代碼:
from pyspark import SparkContext
import pyspark
from pyspark.sql.session import SparkSession
from pyspark.streaming import StreamingContext
from pyspark.sql.functions import *
from json import dumps
from kafka import KafkaProducer
print("Hello")
版本詳情:
- kafka-python==2.0.2
- pyspark==3.2.1
uj5u.com熱心網友回復:
Pyspark 有自己的 Kafka 支持,不依賴于kafka-python模塊。您應該將其與匯入一起洗掉。您還應該使用spark-submit pyspark_client.py來運行代碼,而不是輸入重定向到 pyspark 解釋器。
或者,假設您使用的是 tweepy,則不需要 Spark 將資料生成到 Kafka
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/461170.html
標籤:Python 阿帕奇火花 pyspark 阿帕奇卡夫卡 火花流
