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 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
Python2中的raw_input() 与 input()
Jun 12 Python
Python程序中的观察者模式结构编写示例
May 27 Python
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
详解Python中的Descriptor描述符类
Jun 14 Python
python实现简单中文词频统计示例
Nov 08 Python
神经网络理论基础及Python实现详解
Dec 15 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
python nmap实现端口扫描器教程
May 28 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
Python datetime 如何处理时区信息
Sep 02 Python
python分分钟绘制精美地图海报
Feb 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
判断PHP数组是否为空的代码
2011/09/08 PHP
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
PHP实现类似题库抽题效果
2018/08/16 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
接收键盘指令的脚本
2006/06/26 Javascript
jQuery chili图片远处放大插件
2009/11/30 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
this在vue和小程序中的使用详解
2019/01/28 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
python Pygame的具体使用讲解
2017/11/03 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
py-charm延长试用期限实例
2019/12/22 Python
通过实例解析python描述符原理作用
2020/01/22 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
企业治理工作自我评价
2013/09/26 职场文书
优秀应届毕业生自荐信
2013/11/16 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
一岗双责责任书
2014/04/15 职场文书
鼓舞士气的口号
2014/06/16 职场文书
加入学生会自荐书
2015/03/05 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
Python保存并浏览用户的历史记录
2022/04/29 Python
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers