PyCharm+PySpark遠程調試的環(huán)境配置的方法
前言:前兩天準備用 Python 在 Spark 上處理量幾十G的數(shù)據(jù),熟料在利用PyCharm進行PySpark遠程調試時掉入深坑,特寫此博文以幫助同樣深處坑中的bigdata&machine learning fans早日出坑。
Version :Spark 1.5.0、Python 2.7.14
1. 遠程Spark集群環(huán)境
首先Spark集群要配置好且能正常啟動,版本號可以在Spark對應版本的官方網(wǎng)站查到,注意:Spark 1.5.0作為一個比較古老的版本,不支持Python 3.6+;另外Spark集群的每個節(jié)點的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節(jié)點的IP與主機名的映射;本地正確安裝Spark集群同版本Python;
安裝py4j

添加spark-1.5.0/python目錄

新建一個Python文件Simple,編輯Edit Configurations添加SPARK_HOME變量

寫一個類似下面的簡單測試程序
# -*- 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了~

切記,1)本地與Spark集群的版本要一致;2)程序中不要用IP地址(不信可以試試,如果你用IP地址不報錯,請告知我~謝謝)
以上這篇PyCharm+PySpark遠程調試的環(huán)境配置的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳談套接字中SO_REUSEPORT和SO_REUSEADDR的區(qū)別
下面小編就為大家分享一篇詳談套接字中SO_REUSEPORT和SO_REUSEADDR的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python打包為linux可執(zhí)行文件的詳細圖文教程
這篇文章主要給大家介紹了關于python打包為linux可執(zhí)行文件的詳細圖文教程,本文介紹的方法可以輕松地將Python代碼變成獨立的可執(zhí)行文件,需要的朋友可以參考下2024-02-02
python數(shù)據(jù)結構leetcode338比特位計數(shù)算法
這篇文章主要介紹了力扣刷題中python數(shù)據(jù)結構leetcode338比特位計數(shù)算法解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
python快速建立超簡單的web服務器的實現(xiàn)方法
某些條件測試,需要一個簡單的web服務器測試一下,為此專門去配置個nginx 或者 apache服務器略顯麻煩,這里就為大家介紹一下使用python快速建立超簡單的web服務器的方法,需要的朋友可以參考下2018-02-02

