【问题标题】:No module named py4j.protocol on Eclipse (PyDev)Eclipse (PyDev) 上没有名为 py4j.protocol 的模块
【发布时间】:2017-03-28 13:10:19
【问题描述】:

我配置了 Eclipse 以便使用 Spark 和 Python 进行开发。 我配置: 1. PyDev 和 Python 解释器 2. PyDev 与 Spark Python 源代码 3. 带有 Spark 环境变量的 PyDev。

这是我的库配置:

这是我的环境配置:

我创建了一个名为 CompensationStudy 的项目,我想运行一个小示例并确保一切顺利。

这是我的代码:

from pyspark import SparkConf, SparkContext
import os

sparkConf = SparkConf().setAppName("WordCounts").setMaster("local")
sc = SparkContext(conf = sparkConf)


textFile = sc.textFile(os.environ["SPARK_HOME"] + "/README.md")
wordCounts = textFile.flatMap(lambda line: line.split()).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a+b)
for wc in wordCounts.collect(): print wc

但是我收到了这个错误:ImportError: No module named py4j.protocol

从逻辑上讲,当我使用 Spark Python 源配置 PyDev 时,PySpark 的所有库依赖项(包括 Py4J)都会自动导入。那么,这里有什么问题?我的 log4j.properties 文件有问题吗? 请帮忙!

【问题讨论】:

    标签: python eclipse pyspark pydev py4j


    【解决方案1】:

    你能从命令行运行它吗?我认为第一步是将IDE排除在外,因此,尝试在命令行中使用适当的环境变量运行所有内容(可能向pyspark社区寻求帮助),然后尝试比较环境运行中的变量到命令行中的运行(创建一个运行环境变量的程序并在控制台中运行它,然后在 IDE 中运行以检查差异)。

    一个注释(这可能不是问题,但仍然......):从您的屏幕截图中,您的项目配置似乎已将 /CompensationStudy 添加到 PYTHONPATH 中,但是,您似乎将代码放在 @ 987654322@(因此,您应该编辑您的项目配置以仅将 /CompensationStudy/src 放入 PYTHONPATH 中)。

    【讨论】:

      【解决方案2】:

      有类似的错误。

      安装py4j后,可以正常执行

      sudo pip install py4j
      

      【讨论】:

        猜你喜欢
        • 2020-06-14
        • 1970-01-01
        • 2017-12-05
        • 2011-11-08
        • 2013-04-04
        • 2018-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多