数码控科技猎奇Iphone动漫星座游戏电竞lolcosplay王者荣耀攻略allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

Linux下搭建Spark 的 Python 编程环境的方法

来源:脚本之家  责任编辑:小易  

Spark编程环境

Spark 可以独立安装使用,也可以和Hadoop 一起安装使用。在安装 Spark 之前,首先确保你的电脑上已经安装了 Java 8 或者更高的版本。

Spark 安装

访问 Spark 下载页面 ,并选择最新版本的 Spark 直接下载,当前的最新版本是 2.4.2 。下载好之后需要解压缩到安装文件夹中,看自己的喜好,我们是安装到了 /opt 目录下。

tar -xzf spark-2.4.2-bin-hadoop2.7.tgz
mv spark-2.4.2-bin-hadoop2.7/opt/spark-2.4.2

为了能在终端中直接打开 Spark 的 shell 环境,需要配置相应的环境变量。这里我由于使用的是 zsh,所以需要配置环境到 ~/.zshrc 中。

没有安装 zsh 的可以配置到 ~/.bashrc 中

# 编辑 zshrc 文件
sudo gedit ~/.zshrc
# 增加以下内容:export SPARK_HOME=/opt/spark-2.4.2export PATH=$SPARK_HOME/bin:$PATH
export <a href="https://www.linuxidc.com/topicnews.aspx?tid=17" target="_blank" title="Python">Python</a>PATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH

配置完成后,在 shell 中输入 spark-shell 或者 pyspark 就可以进入到 Spark 的交互式编程环境中,前者是进入 Scala 交互式环境,后者是进入 Python 交互式环境。

配置 Python 编程环境

在这里介绍两种编程环境, Jupyter 和 Visual Studio Code。前者方便进行交互式编程,后者方便最终的集成式开发。

PySpark in Jupyter

首先介绍如何在 Jupyter 中使用 Spark,注意这里 Jupyter notebook 和 Jupyter lab 是通用的方式,此处以 Jupyter lab 中的配置为例:

在 Jupyter lab 中使用 PySpark 存在两种方法:

pyspark 将自动打开一个 Jupyter lab;
findSpark 包来加载 PySpark。

第一个选项更快,但特定于Jupyter笔记本,第二个选项是一个更广泛的方法,使PySpark在你任意喜欢的IDE中都可用,强烈推荐第二种方法。

方法一:配置 PySpark 启动器

更新 PySpark 启动器的环境变量,继续在 ~/.zshrc 文件中增加以下内容:

export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='lab'

如果要使用 jupyter notebook,则将第二个参数的值改为 notebook

刷新环境变量或者重启机器,并执行 pyspark 命令,将直接打开一个启动了 Spark 的 Jupyter lab。

pyspark

 

方法二:使用 findSpark 包

在 Jupyter lab 中使用 PySpark 还有另一种更通用的方法:使用 findspark 包在代码中提供 Spark 上下文环境。

findspark 包不是特定于 Jupyter lab 的,您也可以其它的 IDE 中使用该方法,因此这种方法更通用,也更推荐该方法。

首先安装 findspark:

pip install findspark

之后打开一个 Jupyter lab,我们在进行 Spark 编程时,需要先导入 findspark 包,示例如下:

# 导入 findspark 并初始化import findspark
findspark.init()from pyspark importSparkConf,SparkContextimport random
# 配置 Spark
conf =SparkConf().setMaster("local[*]").setAppName("Pi")# 利用上下文启动 Spark
sc =SparkContext(conf=conf)
num_samples =100000000definside(p):   
  x, y = random.random(), random.random()return x*x + y*y <1
count = sc.parallelize(range(0, num_samples)).filter(inside).count()
pi =4* count / num_samples
print(pi)
sc.stop()

运行示例:

 

PySpark in VScode

Visual Studio Code 作为一个优秀的编辑器,对于 Python 开发十分便利。这里首先推荐个人常用的一些插件:

Python:必装的插件,提供了Python语言支持;

Code Runner:支持运行文件中的某些片段;

此外,在 VScode 上使用 Spark 就不需要使用 findspark 包了,可以直接进行编程:

from pyspark importSparkContext,SparkConf
conf =SparkConf().setMaster("local[*]").setAppName("test")
sc =SparkContext(conf=conf)
logFile ="file:///opt/spark-2.4.2/README.md"
logData = sc.textFile(logFile,2).cache()
numAs = logData.filter(lambda line:'a'in line).count()
numBs = logData.filter(lambda line:'b'in line).count()print("Lines with a: {0}, Lines with b:{1

总结

以上所述是小编给大家介绍的Linux下搭建Spark 的 Python 编程环境的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

您可能感兴趣的文章:


  • 本文相关:
  • linux环境不使用hadoop安装单机版spark的方法
  • linux环境下的python安装过程图解(含setuptools)
  • linux环境下python中mysqldb模块的安装方法
  • linux redhat下安装python2.7开发环境
  • linux环境下python2.7.6升级python3.5.2
  • 详解linux下安装python3环境
  • linux安装python虚拟环境virtualenv的方法
  • linux搭建python环境详解
  • linux下如何快速让dns修改生效
  • centos通过yum安装jdk1.8的教程详解
  • ubuntu安装vbox虚拟机的教程图解
  • linux系统下的ssh登录和配置方法
  • linux内核漏洞浅析
  • 关于aes加密算法在linux下解密失败的解决办法
  • ubuntu系统安装使用搜狗输入法的方法(超简单)
  • 详解/etc/postfix下 main.cf 配置文件
  • ubutun 安装php7.1x教程详解
  • centos的图形安装及初始环境设置教程
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved