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之??碌某?? target=
Sep 12 Python
Python+django实现简单的文件上传
Aug 17 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
解决PySide+Python子线程更新UI线程的问题
Jan 11 Python
Python实现钉钉订阅消息功能
Jan 14 Python
浅谈Python中的生成器和迭代器
Jun 19 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
python 元组和列表的区别
Dec 30 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
Python 线程池模块之多线程操作代码
May 20 Python
Python MNIST手写体识别详解与试练
Nov 07 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
PHP多进程简单实例小结
2019/11/09 PHP
由document.body和document.documentElement想到的
2009/04/13 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
python list转dict示例分享
2014/01/28 Python
Python计算字符宽度的方法
2016/06/14 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python argparse模块使用方法解析
2020/02/20 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
六一儿童节活动策划方案
2014/01/27 职场文书
班组安全员工作职责
2014/02/01 职场文书
保安队长职务说明书
2014/02/23 职场文书
秋季运动会开幕词
2015/01/28 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
运动员入场词
2015/07/18 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
Django与数据库交互的实现
2021/06/03 Python
Python内置的数据类型及使用方法
2022/04/13 Python