Linux下搭建Spark 的 Python 编程环境的方法
Python  /  管理员 发布于 7年前   196
Spark编程环境
Spark 可以独立安装使用,也可以和Hadoop 一起安装使用。在安装 Spark 之前,首先确保你的电脑上已经安装了 Java 8 或者更高的版本。
Spark 安装
访问 Spark 下载页面 ,并选择最新版本的 Spark 直接下载,当前的最新版本是 2.4.2 。下载好之后需要解压缩到安装文件夹中,看自己的喜好,我们是安装到了 /opt 目录下。
tar -xzf spark-2.4.2-bin-hadoop2.7.tgzmv 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:$PATHexport <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=jupyterexport 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 findsparkfindspark.init()from pyspark importSparkConf,SparkContextimport random# 配置 Sparkconf =SparkConf().setMaster("local[*]").setAppName("Pi")# 利用上下文启动 Sparksc =SparkContext(conf=conf)num_samples =100000000definside(p): x, y = random.random(), random.random()return x*x + y*y <1count = sc.parallelize(range(0, num_samples)).filter(inside).count()pi =4* count / num_samplesprint(pi)sc.stop()运行示例:
PySpark in VScode
Visual Studio Code 作为一个优秀的编辑器,对于 Python 开发十分便利。这里首先推荐个人常用的一些插件:
Python:必装的插件,提供了Python语言支持;
Code Runner:支持运行文件中的某些片段;
此外,在 VScode 上使用 Spark 就不需要使用 findspark 包了,可以直接进行编程:
from pyspark importSparkContext,SparkConfconf =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 编程环境的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号
