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 14 Python
详解Python中contextlib上下文管理模块的用法
Jun 28 Python
python读取oracle函数返回值
Jul 18 Python
python实现解数独程序代码
Apr 12 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
Python实现的简单排列组合算法示例
Jul 04 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
python接口自动化如何封装获取常量的类
Dec 24 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学习笔记之面向对象编程
2012/12/29 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
用JAVASCRIPT如何给<textarea></textarea>赋值
2007/04/20 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
javascript操作css属性
2013/12/30 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
车间机修工岗位职责
2014/02/28 职场文书
物业工程部岗位职责
2015/02/11 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
Oracle 多表查询基本语法实例
2022/04/18 Oracle
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS