配置好jdk、spark、hadoop,也添加了wintuil.exe和hadoop.dll到hadoop的bin中以支持windows环境后,pycharm上运行wordcount程序:(别忘了添加word.txt文件到同一目录下)
from pyspark import SparkConf
from pyspark import SparkContext
if __name__ == '__main__':
conf=SparkConf()
conf=conf.setAppName("wordcount").setMaster("local")
sc=SparkContext(conf=conf)
lines=sc.textFile("word.txt",2)
result=lines.flatMap(lambda line:line.split(" ")).map(lambda word:(word,1)).reduceByKey(lambda v1,v2:v1+v2,3)
result.foreach(lambda x:print(x))
一堆报错,主要是org.apache.spark.sparkexception: python worker failed to connect back。尝试降低pyspark至版本3.0.1,没有成功。尝试添加PYSPARK_PYTHON到系统变量中,没有成功。
解决方案:
- 给windows.exe配置环境变量
改动CLASSPATH:添加%HADOOP_HOME%\etc\bin\winutils.exe
(配置jdk时的CLASSPATH,往后加分号和路径;hadoop-2.9.2 放置winutils.exe和hadoop.dll在hadoop-2.9.2\etc\bin里,其它版本没有验证过)
- pycharm配置
(1)运行–>编辑配置
添加环境变量(点击左侧加号,添加SPARK_HOME)
点击确定,添加成功的样子:(2)文件–>设置–>项目:…–>项目结构–>添加内容根添加文件spark目录下的py4j和pyspark到该模块当中(有点指标不治本)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)