0

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

这是我的库配置:

在此处输入图像描述

这是我的环境配置:

在此处输入图像描述

我创建了一个名为 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 文件有问题吗?请帮忙 !

4

2 回答 2

0

有类似的错误。

安装py4j后,可以正常执行

sudo pip install py4j
于 2017-05-27T09:49:24.330 回答
0

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

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

于 2017-03-28T20:08:40.957 回答