PyCharm搭建Spark开发环境的实现步骤


Posted in Python onSeptember 05, 2019

1.安装好JDK

下载并安装好jdk-12.0.1_windows-x64_bin.exe,配置环境变量:

  • 新建系统变量JAVA_HOME,值为Java安装路径
  • 新建系统变量CLASSPATH,值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注意最前面的圆点)
  • 配置系统变量PATH,添加 %JAVA_HOME%bin;%JAVA_HOME%jrebin

在CMD中输入:java或者java -version,不显示不是内部命令等,说明安装成功。

2.安装Hadoop,并配置环境变量

下载hadoop:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

PyCharm搭建Spark开发环境的实现步骤

  • 解压hadoop-2.7.7.tar.gz特定路径,如:D:\adasoftware\hadoop
  • 添加系统变量HADOOP_HOME:D:\adasoftware\hadoop
  • 在系统变量PATH中添加:D:\adasoftware\hadoop\bin
  • 安装组件winutils:将winutils中对应的hadoop版本中的bin替换自己hadoop安装目录下的bin

3.Spark环境变量配置

spark是基于hadoop之上的,运行过程中会调用相关hadoop库,如果没配置相关hadoop运行环境,会提示相关出错信息,虽然也不影响运行。

  • 下载对应hadoop版本的spark:http://spark.apache.org/downloads.html
  • 解压文件到:D:\adasoftware\spark-2.4.3-bin-hadoop2.7
  • 添加PATH值:D:\adasoftware\spark-2.4.3-bin-hadoop2.7\bin;
  • 新建系统变量SPARK_HOME:D:\adasoftware\spark-2.4.3-bin-hadoop2.7;

4.下载安装anaconda

anaconda集成了python解释器和大多数python库,安装anaconda 后不用再安装python和pandas numpy等这些组件了。下载地址。最后将python加到path环境变量中。

5.在CMD中运行pyspark,出现类似下图说明安装配置正常:

PyCharm搭建Spark开发环境的实现步骤

出现这种warning是因为JDK版本为12,太高了,但是不影响运行。没有影响。

6.在pycharm中配置spark

打开PyCharm,创建一个Project。然后选择“Run” ->“Edit Configurations”?>点击+创建新的python Configurations

PyCharm搭建Spark开发环境的实现步骤

选择 “Environment variables” 增加SPARK_HOME目录与PYTHONPATH目录。

  • SPARK_HOME:Spark安装目录
  • PYTHONPATH:Spark安装目录下的Python目录

PyCharm搭建Spark开发环境的实现步骤

选择 File->setting->你的project->project structure

右上角Add content root添加:py4j-some-version.zip和pyspark.zip的路径(这两个文件都在Spark中的python文件夹下)

保存即可

7.测试是否配置成功,程序代码如下,创建一个python程序放进去就可以:

import os
import sys

# Path for spark source folder
os.environ['SPARK_HOME'] = "D:\adasoftware\spark"

# Append pyspark to Python Path
sys.path.append("D:\adasoftware\spark\python")

try:
 from pyspark import SparkContext
 from pyspark import SparkConf

 print("Successfully imported Spark Modules")
except ImportError as e:
 print("Can not import Spark Modules", e)
 sys.exit(1)

若程序正常输出: "Successfully imported Spark Modules"就说明环境已经可以正常执行。

PyCharm搭建Spark开发环境的实现步骤

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python用list或dict字段模式读取文件的方法
Jan 10 Python
Python内置函数delattr的具体用法
Nov 23 Python
Python实现矩阵转置的方法分析
Nov 24 Python
python实现感知器
Dec 19 Python
python创建列表和向列表添加元素的实现方法
Dec 25 Python
Python Paramiko模块的使用实际案例
Feb 01 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
Python3字符串encode与decode的讲解
Apr 02 Python
使用python实现对元素的长截图功能
Nov 14 Python
Python列表切片常用操作实例解析
Mar 10 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 Python
python怎么调用自己的函数
Jul 01 Python
浅谈Python_Openpyxl使用(最全总结)
Sep 05 #Python
python实现人工智能Ai抠图功能
Sep 05 #Python
深入了解Python在HDA中的应用
Sep 05 #Python
python urllib爬虫模块使用解析
Sep 05 #Python
详解Python3 pandas.merge用法
Sep 05 #Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 #Python
python爬取Ajax动态加载网页过程解析
Sep 05 #Python
You might like
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
python Django框架实现自定义表单提交
2016/03/25 Python
用python实现对比两张图片的不同
2018/02/05 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
Python for循环与getitem的关系详解
2020/01/02 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
Java程序开发中如何应用线程
2016/03/03 面试题
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
学生会部长竞选稿
2015/11/19 职场文书
辞职申请书范本
2019/05/20 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis