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发送Email方法实例
Aug 21 Python
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
在Python中操作文件之truncate()方法的使用教程
May 25 Python
Python3中的2to3转换工具使用示例
Jun 12 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python实现验证码识别
Jun 15 Python
Python csv文件记录流程代码解析
Jul 16 Python
使用Python将语音转换为文本的方法
Aug 10 Python
Python列表的深复制和浅复制示例详解
Feb 12 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 header Content-Type类型小结
2011/07/03 PHP
PHP 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
php生成excel列序号代码实例
2013/12/24 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
php给图片加文字水印
2015/07/31 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
Jquery性能优化详解
2014/05/15 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
Python中防止sql注入的方法详解
2017/02/25 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
入党申请自荐书范文
2014/02/11 职场文书
党员服务承诺书
2014/05/28 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript