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中装饰器的一个妙用
Feb 08 Python
python使用mailbox打印电子邮件的方法
Apr 30 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
python取均匀不重复的随机数方式
Nov 27 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
3分钟看懂Python后端必须知道的Django的信号机制
Jul 26 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
Python hashlib模块的使用示例
Oct 09 Python
使用Pytorch搭建模型的步骤
Nov 16 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 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 表单数据的获取代码
2009/03/10 PHP
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
PHP简洁函数小结
2011/08/12 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
PHP的基本常识小结
2013/07/05 PHP
PHP打印输出函数汇总
2016/08/28 PHP
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python中遍历文件的3个方法
2014/09/02 Python
python中split方法用法分析
2015/04/17 Python
python类和继承用法实例
2015/07/07 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
python线程中同步锁详解
2018/04/27 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
详解python的变量缓存机制
2021/01/24 Python
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
研究生导师推荐信
2014/09/06 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
给领导敬酒词
2015/08/12 职场文书
初中班长竞选稿
2015/11/20 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
Win2008系统搭建DHCP服务器
2022/06/25 Servers