MAC OS 如何安装 PySpark

Apache Spark是用 Scala编程语言 编写的。为了用Spark支持Python,Apache Spark社区发布了一个工具PySpark。使用PySpark,您也可以使用Python编程语言中的 RDD 。正是由于一个名为 Py4j 的库,他们才能实现这一目标。

PySpark提供了 PySpark Shell ,它将Python API链接到spark核心并初始化Spark上下文。今天,大多数数据科学家和分析专家都使用Python,因为它具有丰富的库集。将Python与Spark集成对他们来说是一个福音。

下面本文教大家如何来简单地安装pyspark(之前也在网上搜索了很多教程,无奈都是鸡肋,繁琐又不实用):

  1. 安装HomeBrew,homebrew地便捷性相信大家都有所耳闻,使用他可以很方便地再mac上安装很多软件。安装教程就不多介绍了,很简单地一句命令即可搞定。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  1. 安装Java依赖环境和Scala环境
    spark是使用scala语言来完成编写的,而scala语言是依赖于java虚拟机来运行的,因此我们需要安装这两者:
brew cask install java
brew install scala
  1. 完成前面两步以后,我们就可以安装spark框架了。
brew install apache-spark

当terminal显示完成安装以后,我们还需要使用强大的homebrew来检查一下安装依赖等等是否存在问题。

brew doctor

如果没有问题的话,系统会提示 “Your system is ready to brew.”,有问题的话homebrew也会提示接下来如何操作,这里就不一一细细列举了。

  1. 接下来安装pyspark,我这里使用的是python3,所以需要安装对应python3的。
pip3 install pyspark
  1. 至此基本安装完毕,进入环境变量的设置环节。Mac最新操作系统Catalina的shell该用zsh,因此需要设置.zshrc(没有的话在用户home目录下创建一个新的),如果是老系统的话shell使用的是bash,因此需要对应的设置.bashrc文件。

  2. 设置Java环境变量。

export JAVA_HOME=/Library/java/JavaVirtualMachines/adoptopenjdk-8.jdk/contents/Home/
export JRE_HOME=/Library/java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre/

这里解释一下,不能完全照抄,需要你看一下/Library/java/JavaVirtualMachines/这个目录下jdk对应的版本号,把对应的数字改一下,我这里是adoptopenjdk-8.jdk

  1. 接下来设置spark的环境变量。
export SPARK_HOME=/usr/local/Cellar/apache-spark/2.4.5/libexec
export PATH=/usr/local/Cellar/apache-spark/2.4.5/bin:$PATH

这里也是要解释一下,需要你看一下/usr/local/Cellar/apache-spark/这个目录下spark版本号,把对应的数字改一下,我这里是2.4.5

  1. 设置pyspark环境变量。首先需要找到python3的安装环境
which python3

将屏幕输出的python3安装路径记录下来,例如我这里输出的是/Users/duan/.virtualenvs/py3/bin/python3。我使用的是virtualenv虚拟环境,如何搭建virtualenv虚拟环境这里不再赘述。

  1. 正式设置pyspark环境变量。
export PYSPARK_PYTHON=/Users/duan/.virtualenvs/py3/bin/python3
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

后两项是设置使用jupyter notebook来使用pyspark。
至此安装完成,让我们来验证一下。

在terminal中输入pyspark,会启动一个jupyter,我们新建一个jupyter来写一个简单的例子代码检查一下。

from pyspark import SparkContext

sc =SparkContext()
nums= sc.parallelize([1,2,3,4])
print(nums.take(1))
sc.stop
# [1]

参考文献:
https://medium.com/swlh/pyspark-on-macos-installation-and-use-31f84ca61400

你可能感兴趣的:(杂谈)