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制作爬虫爬取京东商品评论教程
Dec 16 Python
python生成excel的实例代码
Nov 08 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
opencv python 2D直方图的示例代码
Jul 20 Python
python实现简单http服务器功能
Sep 17 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
Python龙贝格法求积分实例
Feb 29 Python
如何在Python 游戏中模拟引力
Mar 27 Python
django queryset相加和筛选教程
May 18 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
Python入门_条件控制(详解)
2017/05/16 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
法国在线药房:DoctiPharma
2020/10/21 全球购物
追悼会子女答谢词
2014/01/28 职场文书
会计人员岗位职责
2014/03/19 职场文书
环保倡议书500字
2014/05/15 职场文书
授权委托书协议书
2014/10/16 职场文书
信用卡工资证明范本
2014/10/17 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
督导岗位职责
2015/02/04 职场文书
雷锋的观后感
2015/06/10 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android