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编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
Python中AND、OR的一个使用小技巧
Feb 18 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
pandas将DataFrame的列变成行索引的方法
Apr 10 Python
django ajax json的实例代码
May 29 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python异常处理知识点总结
Feb 18 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 Python
python读取mat文件生成h5文件的实现
Jul 15 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
ThinkPHP php 框架学习笔记
2009/10/30 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
JavaScript使用cookie
2007/02/02 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
解决vue-loader加载不上的问题
2020/10/21 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
python脚本实现查找webshell的方法
2014/07/31 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
给客户的道歉信
2014/01/13 职场文书
幼儿园家长会邀请函
2014/01/15 职场文书
职位说明书范文
2014/05/07 职场文书
地质灾害防治方案
2014/05/14 职场文书
消防安全标语
2014/06/07 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
高中体育课教学反思
2016/02/16 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
MySQL Server层四个日志的实现
2022/03/31 MySQL
Python中第三方库Faker的使用详解
2022/04/02 Python