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")
版本详情:
- kafka-python==2.0.2
- pyspark==3.2.1
Pyspark 有自己的 Kafka 支持,不依赖于 kafka-python
模块。您应该将其与导入一起删除。您还应该使用 spark-submit pyspark_client.py
到 运行 代码,而不是将重定向输入到 pyspark 解释器中。
或者,假设您使用的是 tweepy,则不需要 Spark 向 Kafka 生成数据
我可以提交 运行 我写的 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")
版本详情:
- kafka-python==2.0.2
- pyspark==3.2.1
Pyspark 有自己的 Kafka 支持,不依赖于 kafka-python
模块。您应该将其与导入一起删除。您还应该使用 spark-submit pyspark_client.py
到 运行 代码,而不是将重定向输入到 pyspark 解释器中。
或者,假设您使用的是 tweepy,则不需要 Spark 向 Kafka 生成数据