pycharm下与spark的交互 详细配置说明以及spark 运行简单例子
前提你本地的pyspark是可以运行的,如果有不明白的,可以看我的博客:https://blog.****.net/Lq_520/article/details/85323058
下面开始了,试了无数次才成功的:
pycharm的安装,不会的可以看我的博客:https://blog.****.net/Lq_520/article/details/83584987
这样所有的安装配置都齐活了,开始在pycharm中开始配置。
首先创建一个工程文件.py文件,在网上看了无数个博客 ,都有问题,没弄出来,结果无意中就自己弄出来了。
1.打开pycharm-(左上角)file—settings–Project Interpreter–选择你的python环境
2.找到你的spark安装路径和文件:D:\lq\spark\python\lib 你会看到有两个压缩文件
将这两个文件进行解压 粘贴 复制 到你所选python环境的Lib\site-packages中 ,例如我的是:D:\lq\env\venv\Lib\site-packages,具体图片如下图所示:
然后在重新打开你的pycharm工程文件,pyspark就不会报红了,l例如我的运行程序:
from pyspark import *
import os
if __name__ == '__main__':
# Windows的Spark安装目录
os.environ['SPARK_HOME'] = 'D:\lq\spark'
# Create SparkConf
conf = SparkConf()\
.setAppName("WordCount")\
.setMaster("local")\
# Create SparkContext
sc = SparkContext(conf=conf)
# 从本地模拟数据
datas = ["you,jump", "i,jump"]
# Create RDD
rdd = sc.parallelize(datas)
print(rdd.count()) # 2
print(rdd.first()) # you,jum
# WordCount
wordcount = rdd.flatMap(lambda line: line.split(",")) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a + b)
for wc in wordcount.collect():
print(wc[0] + " " + str(wc[1]))
这时我们会报错误如下图所示:
有的人系统找不到文件那是乱码的,刚开始我也是,一直不知道是什么错误,这里我们需要对consol编码进行设置,我也是找了很久,对pycharm不是很熟吧,具体设置如下图
将global encoding 设置成GBK,这样与windows编码一致,这样就知道是什么错误了。言归正传,对于"""Exception: Java gateway process exited before sending the driver its port number “”"错误,解决其实很简单,在代码中我们需要对 JAVA_HOME 进行设置,即可解决。在代码中加上如下代码即可。
os.environ['JAVA_HOME'] = 'D:\lq\Java\jdk1.8.0_191'
输出结果如下图所示: