Python kafka 模块与 pyspark 一起使用时会导致 'ModuleNotFound' 错误?

Python kafka module when used with pyspark causes 'ModuleNotFound' error?

我可以提交 运行 我写的 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'

我想做的就是将每个 window 中的推文计数写入 kafka 主题。我从 window 获取主题和计数的方式是遍历 window 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")

版本详情:

Pyspark 有自己的 Kafka 支持,不依赖于 kafka-python 模块。您应该将其与导入一起删除。您还应该使用 spark-submit pyspark_client.py 到 运行 代码,而不是将重定向输入到 pyspark 解释器中。

或者,假设您使用的是 tweepy,则不需要 Spark 向 Kafka 生成数据