温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

spark2.x由浅入深深到底系列七之python开发spark环境配置

发布时间:2020-07-15 14:05:27 阅读:1251 作者:tangweiqun 栏目:大数据
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

学习spark任何的技术前,请先正确理解spark,可以参考: 正确理解spark

以下是在mac操作系统上配置用python开发spark的环境

一、安装python

spark2.2.0需要python的版本是Python2.6+ 或者 Python3.4+

可以参考: 

http://jingyan.baidu.com/article/7908e85c78c743af491ad261.html 

二、下载spark编译包并配置环境变量

1、在官网中: http://spark.apache.org/downloads.html 下载版本为:spark-2.2.0-bin-hadoop2.6.tgz包

放到本地的某个盘中,然后解压。

2、设置环境变量:

cd ~

vi .bash_profile

export SPARK_HOME=/Users/tangweiqun/Desktop/bigdata/spark/spark-2.2.0-bin-hadoop2.6

export PATH=$PATH:$SCALA_HOME/bin:$M2_HOME/bin:$JAVA_HOME/bin:$SPARK_HOME/bin

source .bash_profile

3、需要对SPARK_HOME下的bin目录下的文件执行chmod 744 ./*,否则会报权限不足的错误

Window机器应该不用做这步

三、安装PyCharm

1、从官网: https://www.jetbrains.com/pycharm/download/中下载,然后傻瓜式安装

四、编写wordcount.py并运行成功

1、创建一个project

file --> New Project

2、给PyCharm配置PYTHONPATH

Run --> Edit Configurations,配置如下

spark2.x由浅入深深到底系列七之python开发spark环境配置

spark2.x由浅入深深到底系列七之python开发spark环境配置

spark2.x由浅入深深到底系列七之python开发spark环境配置

点上面的“+”,然后填上: 

PYTHONPATH=/Users/tangweiqun/Desktop/bigdata/spark/spark-2.1.0-bin-hadoop2.6/python/:/Users/tangweiqun/Desktop/bigdata/spark/spark-2.1.0-bin-hadoop2.6/python/lib/py4j-0.10.4-src.zip

即将spark安装包中和python相关的依赖加上

3、py4j-some-version.zippyspark.zip加入到项目中

为了能看到源码,我们需要将项目关联源码,关联的方式如下:

spark2.x由浅入深深到底系列七之python开发spark环境配置

spark2.x由浅入深深到底系列七之python开发spark环境配置

点击+ Add Content Root将/Users/tangweiqun/Desktop/bigdata/spark/spark-2.1.0-bin-hadoop2.6/python/lib下的两个zip包加进去

4、编写spark word count,然后运行成功

创建一个python文件wordcount.py,内容如下:

from pyspark import SparkContext, SparkConfimport osimport shutilif __name__ == "__main__":    conf = SparkConf().setAppName("appName").setMaster("local")    sc = SparkContext(conf=conf)    sourceDataRDD = sc.textFile("file:///Users/tangweiqun/test.txt")    wordsRDD = sourceDataRDD.flatMap(lambda line: line.split())    keyValueWordsRDD = wordsRDD.map(lambda s: (s, 1))    wordCountRDD = keyValueWordsRDD.reduceByKey(lambda a, b: a + b)    outputPath = "/Users/tangweiqun/wordcount"    if os.path.exists(outputPath):        shutil.rmtree(outputPath)    wordsRDD.saveAsTextFile("file://" + outputPath)    print wordCountRDD.collect()

右击运行成功



详细且系统的了解spark core RDD相关的Api可以参考:spark core RDD api原理详解

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×