Spark Shell入门教程(上)

简介: Spark Shell入门教程(上)

0x00 教程内容


  1. Spark Shell 操作
  2. 测试词频统计案例
  3. Pyspark 初体验

学习前提:有一定的Scala基础、基本的 Linux 基础,对Spark有一定的概念,并且安装好了Spark环境。


相关环境参考教程:

1、分布式集群环境之Scala的安装与配置(Centos7)

2、分布式集群环境之Spark的安装与配置(Centos7)


0x01 Spark Shell 操作


1. 启动与关闭 Spark Shell

a. 启动 Spark Shell


Spark-Shell是 Spark 自带的一个 Scala 交互式操作 Shell ,类似于 Python 或者其他脚本语言的 Shell ,其可以以脚本方式进行交互式执行。安装好Spark之后,在任意非bin路径,直接在Linux命令行中输入:


spark-shell


即可进入 Spark Shell 界面:


image.png


b. 关闭 Spark Shell

按 Ctrl + D 即可退出。

启动Spark Shell之后,可以打开一个新的终端,然后输入jps,查看目前有哪些Java进程,可以看到:


image.png


注意:此处只在master节点上启动,所以,slave1、slave2是没有SparkSubmit进程的。


2. 使用 Spark Shell 进行 Scala 编程

a. 读取Spark内置数据

数据位置:$SPARK_HOME/data/graphx/users.txt,

如我的位置是(需替换成自己实际的路径):/home/hadoop-sny/bigdata/spark-2.2.0-bin-hadoop2.7/data/graphx/users.txt

查看内容:


image.png


也可以自己创建文件:

1,BarackObama,Barack Obama
2,ladygaga,Goddess of Love
3,jeresig,John Resig
4,justinbieber,Justin Bieber
6,matei_zaharia,Matei Zaharia
7,odersky,Martin Odersky
8,anonsys


我们来统计一下users.txt文件一共有多少行,并且打印第一行内容,进入Spark Shell界面,输入内容:


var file = sc.textFile("/home/hadoop-sny/bigdata/spark-2.2.0-bin-hadoop2.7/data/graphx/users.txt")
file.count()
file.first()


image.png


代码解释:

  1. 创建了一个 RDD file;
  2. count()获取 RDD 的行数;
  3. first()获取第一行的内容。

当然,我们还可以继续执行其他操作,

比如查找有多少行含有"Obama":


file.filter(line => line.contains("Obama")).count()


image.png


具体的函数、算子,就需要自己有一定的基础的,但是你可以先了解。

此代码的意思就是file的RDD调用一个过滤算子 filter ,过滤条件是判断有Obama,如果有,则保留下来,保留下来之后再进行 count 计算行数操作,最后统计结果为 1。


0x02 测试词频统计案例


1. 查看 Spark Shell 的启动信息

此案例来源于教程:IntelliJ IDEA开发Spark案例之WordCount0x02 编写WordCount代码的完整代码,如下为教程截图:


微信图片_20220619130243.png


为了方便大家理解,此处重新启动 Spark Shell,如已启动,则按 Ctrl + D 即可退出,然后输入 spark-shell 启动,观察显示的内容:


微信图片_20220619130248.png

相关文章
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
472 0
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
1343 0
|
Shell Linux
Linux Shell 脚本入门教程:开启你的自动化之旅
Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。
374 2
|
Shell Linux
Linux的shell入门教程shell脚本入门教程
Linux的shell入门教程shell脚本入门教程
204 0
|
存储 SQL 分布式计算
Spark Shell笔记
Spark Shell笔记
325 0
Spark Shell笔记
|
Shell
shell脚本入门教程
shell脚本入门教程
253 0
|
分布式计算 Ubuntu Java
|
6月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
591 9
|
6月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
595 2