pycharm下py2.x和py3.x双环境的pyspark配置

一、py2.x和py3.x双环境的安装

第一步:首先在win上分别安装anaconda2和anaconda3,注意安装在不同的文件路径下,并且在安装二个的时候下边这二个框不一定不勾选,安装第一个时候可以勾选。

pycharm下py2.x和py3.x双环境的pyspark配置

然后,分别设置好环境变量,如果第一个勾选了上边二个框是会自动设置环境变量的

pycharm下py2.x和py3.x双环境的pyspark配置

安装好后,分别找到安装目录,修改python.exe的名字分别修改为python2.exe,python3.exe,方便后边识别

pycharm下py2.x和py3.x双环境的pyspark配置

然后鼠标点击pycharm左上角 “File", 点击"Settings"

pycharm下py2.x和py3.x双环境的pyspark配置

点击”Project“, 再点击Project interpreter, 再点击右上角 三角 图标

pycharm下py2.x和py3.x双环境的pyspark配置

如果你这里已经出现两个版本的python,只要选择你需要对应的版本然后apply, ok就可以了。第一次应该不会出现两个,则要手动添加,点击show all,

pycharm下py2.x和py3.x双环境的pyspark配置

点击右上角 绿色的 “+”, 选择Add local

pycharm下py2.x和py3.x双环境的pyspark配置

找到需要更换的为的python(anaconda)目录下的python.exe(之前已经修改了名字的可执行文件),然后ok。

pycharm下py2.x和py3.x双环境的pyspark配置

之后,pycharm就可以让你通过这种方法,任意切换Python2.7或者3来执行你的代码。

二、pyspark环境变量设置

由于两个版本的python共存,在执行pyspark程序时候可能会抛出以下错误:

Exception: Python in worker has different version 3.7 than that in driver 2.7, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.
这时候需要在代码中增加“如下代码:

os.environ['PYSPARK_PYTHON'] = 'C:\Anaconda2\python3'

等号后边是上一步指定的环境执行文件路径python.exe(之前已经修改了名字的可执行文件)。

其他环境变量设置如下:

os.environ['SPARK_HOME']='C:\spark-2.3.1-bin-hadoop2.7'
os.environ['HADOOP_HOME']='C:\PycharmProjects\pyspark-project\winuntil'

注意:上边第二行中的winuntil是win下为了兼容hadoop下特有的,需要到网上去下载hadoop对应版本的winuntil文件夹,然后拷贝到pycharm的工程保存目录下,在设置环境变量引用,linux下不需要这个文件和这个环境变量。

三、pyspark包配置

将spark安装目录中python/lib下边的py4j和pyspark两个压缩包解压后复制到C:\Anaconda2\Lib\site-packages目录下。

四、读取hdfs集群中的文件

win上的pyspark读取linux虚拟机的hdfs文件系统的文件,将虚拟机中hadoop安装路径下的/etc/hadoop下配置文件core-site.xml,hdfs-site.xml复制到win上spark安装目录的C:\spark-2.3.1-bin-hadoop2.7\conf路径下,然后用以下读取:
  rdd=sc.textFile("/wcinput/wc.input"),括号里边是需要读取的文件所在的路径