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中删除文件的程序代码
Mar 13 Python
Python的迭代器和生成器使用实例
Jan 14 Python
在Python操作时间和日期之asctime()方法的使用
May 22 Python
解决Python出现_warn_unsafe_extraction问题的方法
Mar 24 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
利用Python绘制有趣的万圣节南瓜怪效果
Oct 31 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
基于python3的socket聊天编程
Feb 17 Python
python三子棋游戏
May 04 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字符串的编码问题的详细介绍
2013/04/27 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
php class类的用法详细总结
2013/10/17 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
Python自动登录126邮箱的方法
2015/07/10 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
python滑块验证码的破解实现
2019/11/10 Python
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
大三预备党员入党思想汇报
2014/01/08 职场文书
销售总经理岗位职责
2014/03/15 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
工作年限证明模板
2015/06/15 职场文书
运动会致辞稿
2015/07/29 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
Redis集群的关闭与重启操作
2021/07/07 Redis
Python实现抖音热搜定时爬取功能
2022/03/16 Python
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫