Ubuntu本地运行Spark执行Python脚本

概述

Apache Spark是一个快速且通用的集群计算系统,它提供了一个简单易用的API,可以让开发者使用Python、Java、Scala等语言进行大规模数据处理和分析。在本文中,我们将介绍如何在Ubuntu环境下搭建Spark,并使用Python编写和运行Spark脚本。

安装Spark

首先,我们需要安装Spark。你可以在Spark官方网站上下载最新的稳定版本。解压缩下载的文件,并将解压后的目录移动到你希望安装Spark的位置。

# 下载Spark
wget 

# 解压缩Spark
tar xvf spark-3.2.0-bin-hadoop3.2.tgz

# 移动Spark目录
mv spark-3.2.0-bin-hadoop3.2 /opt/spark

配置环境变量

为了能够方便地使用Spark,我们需要配置一些环境变量。打开~/.bashrc文件,并添加以下内容:

# 配置Spark环境变量
export SPARK_HOME=/opt/spark
export PATH=$SPARK_HOME/bin:$PATH

保存文件后,执行以下命令使环境变量生效:

source ~/.bashrc

运行Spark脚本

现在,我们已经安装好了Spark并配置好了环境变量。接下来,我们将编写一个简单的Python脚本,并使用Spark来执行它。

首先,创建一个名为word_count.py的文件,并将以下代码写入到文件中:

from pyspark.sql import SparkSession

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

# 读取文本文件
lines = spark.read.text("input.txt").rdd.map(lambda x: x[0])

# 单词计数
word_counts = lines.flatMap(lambda x: x.split(" ")).countByValue()

# 打印结果
for word, count in word_counts.items():
    print(f"{word}: {count}")

# 关闭SparkSession
spark.stop()

在上面的代码中,我们首先创建了一个SparkSession对象,它是Spark程序的入口点。然后,我们使用SparkSession对象读取名为input.txt的文本文件,并将其转换为一个RDD(弹性分布式数据集)。接着,我们使用flatMap操作将每一行的单词拆分成一个个的单词,并使用countByValue操作计算每个单词的出现次数。最后,我们遍历计数结果,并打印出每个单词以及其出现次数。最后,我们使用stop方法关闭SparkSession

接下来,创建一个名为input.txt的文本文件,并输入一些文本内容,例如:

Hello world
Hello Spark
Spark is awesome

现在,我们可以在终端中运行Spark脚本了:

python word_count.py

运行结果将会输出每个单词以及其出现次数,例如:

Hello: 2
world: 1
Spark: 2
is: 1
awesome: 1

总结

本文介绍了在Ubuntu本地运行Spark执行Python脚本的方法。我们首先安装了Spark,并配置了相关的环境变量。然后,我们编写了一个简单的Python脚本,并使用Spark执行了它。Spark提供了强大的分布式计算能力,可以帮助我们处理大规模的数据集。通过本文的介绍,你现在可以在Ubuntu环境下开始使用Spark了。

参考链接

  • [Apache Spark官方网站](
  • [Apache Spark文档](