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 获得13位unix时间戳的方法
Oct 20 Python
Python定时器实例代码
Nov 01 Python
使用Django和Python创建Json response的方法
Mar 26 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 Python
Flask框架使用DBUtils模块连接数据库操作示例
Jul 20 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
Python Tkinter 简单登录界面的实现
Jun 14 Python
在Python中COM口的调用方法
Jul 03 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
Python操作Excel把数据分给sheet
May 20 Python
pycharm 对代码做静态检查操作
Jun 09 Python
python实现简单的井字棋
May 26 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
关于js中的鼠标事件总结
2017/07/11 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
Node.js进阶之核心模块https入门
2018/05/23 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
Python目录和文件处理总结详解
2019/09/02 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
Pytorch之contiguous的用法
2019/12/31 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
意大利团购网站:Groupon意大利
2016/10/11 全球购物
美国女孩服装购物网站:Justice
2017/03/04 全球购物
一道Delphi上机题
2012/06/04 面试题
超市营业员求职简历的自我评价
2013/10/17 职场文书
体育之星事迹材料
2014/05/11 职场文书
介绍信模板
2015/01/31 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
golang特有程序结构入门教程
2021/06/02 Python