macOS Install Spark & PySpark

Brief summary:

  • brew & update
  • brew install jdk, spark, miniconda
  • pip install pyspark

1. 安装 Homebrew

可以使用以下命令进行安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. 更新 Homebrew

确保 Homebrew 是最新的:

brew update

3. 安装 Java

Apache Spark 需要 Java 运行时环境 (JRE)。你可以使用 Homebrew 安装 OpenJDK:

brew install openjdk@11

4. 设置 Java 环境变量

对于 fish shell,编辑你的配置文件 ~/.config/fish/config.fish 并添加以下内容:

set -x PATH /usr/local/opt/openjdk@11/bin $PATH
set -x CPPFLAGS -I/usr/local/opt/openjdk@11/include

然后,重新加载 fish 配置文件:

source ~/.config/fish/config.fish

5. 安装 Apache Spark

使用 Homebrew 安装 Apache Spark:

brew install apache-spark

6. 安装 PySpark

如果还没有安装 Python 或 pip,可以使用 Homebrew 安装 miniconda:

brew install --cask miniconda

然后,使用 pip or conda or mamba 安装 PySpark:

pip install pyspark

7. 设置 SPARK_HOME 环境变量

编辑 ~/.config/fish/config.fish 文件并添加以下内容:

set -x SPARK_HOME /usr/local/opt/apache-spark/libexec
set -x PATH $SPARK_HOME/bin $PATH

然后,重新加载 fish 配置文件:

source ~/.config/fish/config.fish

8. 验证安装

可以通过启动 Spark shell 来验证安装是否成功:

spark-shell

应该会看到 Spark shell 启动并显示版本信息。

要验证 PySpark 安装,可以启动 PySpark shell:

pyspark

应该会看到 PySpark shell 启动并显示版本信息。

9. 创建并运行简单的 PySpark 应用

可以创建一个简单的 PySpark 脚本来测试你的安装:

vim hello_spark.py

在文件中添加以下内容:

from pyspark.sql import SparkSession

# 创建 SparkSession
spark = SparkSession.builder.appName("HelloSpark").getOrCreate()

# 创建 DataFrame
data = [("Alice", 1), ("Bob", 2), ("Cathy", 3)]
columns = ["Name", "Value"]
df = spark.createDataFrame(data, columns)

# 显示 DataFrame
df.show()

# 停止 SparkSession
spark.stop()

运行脚本:

python hello_spark.py

应该会看到 DataFrame 的内容打印在控制台上。

通过以上步骤,应该能够在 fish shell 环境下成功安装并运行 Apache Spark 和 PySpark 应用。

10. 其他 shell 环境的配置

  • zsh

Add the following lines to .zshrc file:

export PATH=/usr/local/opt/openjdk@11/bin:$PATH
export CPPFLAGS=-I/usr/local/opt/openjdk@11/include
export SPARK_HOME=/usr/local/opt/apache-spark/libexec
export PATH=$SPARK_HOME/bin:$PATH
  • bash

Add the following lines to .bashrc file (or .bash_profile if on macOS):

export PATH=/usr/local/opt/openjdk@11/bin:$PATH
export CPPFLAGS=-I/usr/local/opt/openjdk@11/include
export SPARK_HOME=/usr/local/opt/apache-spark/libexec
export PATH=$SPARK_HOME/bin:$PATH