使用pyspark shell进行交互式分析

在进行数据分析的时候,通常需要进行交互式数据探索和数据分析。为此,PySpark提供了一个交互式的工具pyspark shell。通过Spark Shell,用户可以和PySpark进行实时交互,以进行数据探索、数据清洗和整理以及交互式数据分析等工作。

pyspark shell命令格式如下所示:

$ ./bin/pyspark [options]

要查看完整的参数选项列表,可以执行“pyspark --help”命令,如下:

$ pyspark --help

运行模式--master

Spark/PySpark的运行模式取决于传递给SparkContext的Master URL的值。参数选项“--master”表示当前的pyspark shell要连接到哪个master(即告诉Spark/PySpark使用哪种集群类型)。

如果是local[*],就是使用本地模式启动pyspark shell,其中,中括号内的星号(*)表示需要使用几个CPU核,也就是启动几个线程模拟Spark集群。如果不指定,则默认为local。

当运行pyspark shell命令时,像下面这样定义这个参数:

$ pyspark --master 

根据所使用的集群的类型而变化。Master URL(即--master参数)的值如下表所示:

启动和退出pyspark shell

以下操作均在终端窗口中进行。

1)启动pyspark shell方式一:local模式

$ cd ~/bigdata/spark-3.1.2
$ ./bin/pyspark

然后可以看到如下的启动过程:

从上图中可以看出,pyspark shell在启动时,已经帮我们创建好了SparkSession对象的实例spark(实际上也包括SparkContext对象的实例sc),我们可以在pyspark shell中直接使用sc和spark这两个对象。另外,默认情况下,启动的pyspark shell采用local部署模式。

退出pyspark shell,使用如下命令:

>>> exit()

2)启动Spark Shell方式二:standalone模式

首先要确保启动了Spark集群:

$ cd ~/bigdata/spark-3.1.2
$ ./sbin/start-all.sh

使用jps命令查看启动的进程。如果有master和worker进程,说明Spark集群已经启动。

然后启动pyspark shell,并指定--master spark://xueai8:7077参数,以standalone模式运行:

$ ./bin/pyspark --master spark://xueai8:7077

在Master URL中指定的xueai8是当前的机器名。

pyspark shell常用命令

可以在pyspark shell里面输入python代码进行调试:

可以pyspark shell中键入以下命令,查看pyspark shell常用的命令:

>>> help()

如下图所示:

可以help模式下键入模块的名称,查看该模块的使用说明:

help> pyspark.sql

会显示如下的使用说明界面:

按q键退出help帮助界面,输入exit()命令,返回shell命令行。


《Flink原理深入与编程实战》