PyCharm+PySpark远程调试的环境配置的方法


Posted in Python onNovember 29, 2018

前言:前两天准备用 Python 在 Spark 上处理量几十G的数据,熟料在利用PyCharm进行PySpark远程调试时掉入深坑,特写此博文以帮助同样深处坑中的bigdata&machine learning fans早日出坑。

Version :Spark 1.5.0、Python 2.7.14

1. 远程Spark集群环境

首先Spark集群要配置好且能正常启动,版本号可以在Spark对应版本的官方网站查到,注意:Spark 1.5.0作为一个比较古老的版本,不支持Python 3.6+;另外Spark集群的每个节点的Python版本必须保持一致。这里只讲如何加入pyspark远程调试所需要修改的部分。在$SPARK_HOME/conf/spark-env.sh中添加一行:

export PYSPARK_PYTHON=/home/hadoop/anaconda2/bin/python2

这里的Python路径是集群上Python版本的路径,我这里是用的anaconda安装的Python2,所以路路径如上。正常启动Spark集群后,在命令行输入pyspark后回车,能正确进入到pyspark shell。

2. 本地PyCharm配置

首先将Spark集群的spark-1.5.0部署包拷贝到本地机器,并在/etc/hosts(Linux类机器)或C:\Windows\System32….\hosts(Windows机器)中加入Spark集群Master节点的IP与主机名的映射;本地正确安装Spark集群同版本Python;

安装py4j

PyCharm+PySpark远程调试的环境配置的方法

添加spark-1.5.0/python目录

PyCharm+PySpark远程调试的环境配置的方法

新建一个Python文件Simple,编辑Edit Configurations添加SPARK_HOME变量

PyCharm+PySpark远程调试的环境配置的方法

写一个类似下面的简单测试程序

# -*- encoding: UTF-8 -*-
# @auther:Mars
# @datetime:2018-03-01
from pyspark import SparkContext

sc = SparkContext("spark://master:7077","Simple APP")
logData = sc.textFile("hdfs://master:9000/README.md").cache()

numAs = logData.filter(lambda s: 'a' in s).count()
numBs = logData.filter(lambda s: 'b' in s).count()

print("Lines with a: %i, lines with b: %i"%(numAs, numBs))

sc.stop()

运行可以得到看到下图,就OK了~

PyCharm+PySpark远程调试的环境配置的方法

切记,1)本地与Spark集群的版本要一致;2)程序中不要用IP地址(不信可以试试,如果你用IP地址不报错,请告知我~谢谢)

以上这篇PyCharm+PySpark远程调试的环境配置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多重继承新算法C3介绍
Sep 28 Python
django实现分页的方法
May 26 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
Python检测端口IP字符串是否合法
Jun 05 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 Python
利用Pycharm断点调试Python程序的方法
Nov 29 #Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 #Python
详解分布式任务队列Celery使用说明
Nov 29 #Python
Python正则表达式和元字符详解
Nov 29 #Python
Django中使用Celery的方法示例
Nov 29 #Python
记一次python 内存泄漏问题及解决过程
Nov 29 #Python
对python pandas 画移动平均线的方法详解
Nov 28 #Python
You might like
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
微信支付的开发流程详解
2016/09/13 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
Python判断变量是否已经定义的方法
2014/08/18 Python
python使用pil生成缩略图的方法
2015/03/26 Python
详解Python的Lambda函数与排序
2016/10/25 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
python实现大文本文件分割
2019/07/22 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Opencv求取连通区域重心实例
2020/06/04 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
内容编辑个人求职信
2013/12/10 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
担保书格式
2015/01/20 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python