获取:导入 Spark 模块时出错:没有名为“pyspark.streaming.kafka”的模块

Posted

技术标签:

【中文标题】获取:导入 Spark 模块时出错:没有名为“pyspark.streaming.kafka”的模块【英文标题】:Getting : Error importing Spark Modules : No module named 'pyspark.streaming.kafka' 【发布时间】:2020-05-27 22:27:40 【问题描述】:

我需要将 pyspark 脚本创建的日志推送到 kafka。我正在做 POC,所以在 Windows 机器中使用 Kafka 二进制文件。我的版本是 - kafka - 2.4.0、spark - 3.0 和 python - 3.8.1。我正在使用 pycharm 编辑器。

import sys
import logging
from datetime import datetime

try:
    from pyspark import SparkContext
    from pyspark.streaming import StreamingContext
    from pyspark.streaming.kafka import KafkaUtils

except ImportError as e:
    print("Error importing Spark Modules :", e)
    sys.exit(1)

遇到错误

导入 Spark 模块时出错:没有名为“pyspark.streaming.kafka”的模块

我在这里缺少什么?缺少任何图书馆吗? pyspark 和火花流工作正常。如果有人可以在这里提供一些指导,我将不胜感激。

【问题讨论】:

【参考方案1】:

Spark Streaming 自 Spark 2.4 起已弃用。

您应该通过pyspark.sql 模块使用结构化流式传输

【讨论】:

我面临同样的问题,我尝试了几乎所有版本,但没有弄清楚。是的,它已被弃用,但我不明白为什么它会通过错误。 @vishal 也许是因为您没有添加 --packages 来包含模块? Spark 不附带 Kafka 包【参考方案2】:

问题在于我用于 python 和 spark 的版本。 我使用的是不完全支持 pyspark 的 python 3.8。我将版本更改为 3.7。 spark 3 还在预览版中,将其更改为 2.4.5。它工作正常。

【讨论】:

以上是关于获取:导入 Spark 模块时出错:没有名为“pyspark.streaming.kafka”的模块的主要内容,如果未能解决你的问题,请参考以下文章

导入 keras ModuleNotFoundError 时出错:没有名为“tensorflow.examples”的模块; 'tensorflow' 不是一个包

ModuleNotFoundError:没有名为“py4j”的模块

Django + uwsgi + nginx。导入错误:没有名为py的模块

Py.test 没有名为 * 的模块

没有名为 _graphviz 的模块

pip install 出错:“没有名为 pip.__main__ 的模块”[重复]