Spark 入门_Spark Shell 本地文件读取|学习笔记

简介: 快速学习 Spark 入门_Spark Shell 本地文件读取

开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段Spark 入门_Spark Shell 本地文件读取】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/688/detail/11945


Spark 入门_Spark Shell 本地文件读取


引入:

Spark 代码编写有两种方式即:

比较适合用于数据探索和测试的 1.spark-shell 和比较适合用于上线应用和固化代码的独立应用。

本节主要讲解 1.spark-shell。

以 wordcount 为案例进行讲解,第一步使用 spark-shell 读取文件,计算本地文件中单词出现的频率即词频统计。


主要介绍:

一、准备文件

二、启动 spark shell

三、执行代码如下


一、准备文件

首先寻找数据,指定 export 下的 datas 目录,然后创建文件即

vi word count.txt 保存并退出,该数据文件已准备好。


二、启动 spark shell

Spark shell 是一个交互式的命令行窗口,原理为把每一行 scala 代码编译成类,最终交由 spark 执行,是 shell 的黑窗口,在该窗口内可以编写代码,回车代码执行结果可见。

spark-shell 命令在启动时 spark-shell --master 指定 master 的地址,以下表格几种均可就可以提交 spark 任务。采用 local 地址的形式进行测试如图

image.png

Master 地址的设置有如下几种方式:

地址

解释

local[N]

使用 N条 worker 线程在本地运行

Spark://host:port

在 spark standalone 中运行,指定 spark 集群的 master 地址,端口默认为7077

mesos://host:port

在 Apache Mesos 中运行,指定 Mesos 的地址

varn

在 Yarn 中运行,Yarn 的地址由环境变量 HADOOP_CONF_DIR 来指定


三、执行代码如下

具体步骤如下:

Step1 准备文件

在 node01 中创建文件 /export/data/wordcount.txt

hadoop spark flume

spark hadoop

Flume

Step2 启动 Spark shell

cd/export/servers/spark

bin/spark-shell --master local [2]

注意四步骤:

1.读取文件;

在 spark 中要读取文件需要使用代码 sc.textFile(“”) 的形式传入文件路径,此处举例为本地文件,从根目录开始即:

(file:///export/data/wordcount.txt) 读取会返回对象,需要返回到前面编写的位置给出对象的名字 rdd1,运行无误。

2.拆分单词;

通过 rdd1 拆分 rdd 中的单词使用 map(), 当中接受的参数是每一行的数据,暂定为 item =>(“ ”),按照空格来拆分,拆分完再次命名 rdd2 ,生成的是 rdd2 的 array ,array 不便执行,为将其修改为平铺的 rdd ,再次执行 rdd2, 进行覆盖需追加为 val rdd2=rdd1.flatmap(item =>item.split( ”)) ,执行后变为 RDD[string]。

3.给予每个单词词频为1;

编写 val rdd3=rdd2.map(item=>item,1) 将单词转换为词频为1的形式,返回的结果是一个元组,第一项为 k ,第二项为其词频。

4.按照单词进行词频聚合(如图)

按照具体每个单词统计结果,即 val rdd4=rdd3.reduceByKey(),按照具体单词进行规约,存在两个参数,当前值 curr ,当前结果即集合值 agg ,只需将 curr +agg 作为整个函数的返回结果即可。此时 rdd4 已表示完毕,直接 rdd4.collect() 收集 rdd 当中的所有数据,并且返回 scala 的数据集合,

image.png

检查数据集合中的内容:

(hadoop,1)、(spark,2)、(hadoop,2)由于数据文件缺少 H、(flume,2) 这是第一种方式运行代码即使用 spark shell 读取本地文件。

相关文章
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
2月前
|
存储 Java Shell
shell学习笔记(详细整理)
这篇文章是一份详细的Shell学习笔记,涵盖了Shell的基础知识、脚本编写、变量、运算符、条件判断、流程控制、函数以及常用Shell工具的使用。
43 1
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
|
3月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
56 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
2月前
|
存储 Ubuntu Shell
shell 用法入门
本文档详细介绍了Shell脚本的基础知识,包括基本写法、变量定义与使用、命令置换、环境变量、数组操作、算术运算、输入输出处理、控制语句及循环结构等内容。文档还提供了丰富的示例代码,帮助读者更好地理解和掌握Shell编程技巧。此外,还介绍了如何使用`if`语句进行条件判断、`case`语句进行模式匹配以及`while`、`for`循环等控制结构。最后,文档还涵盖了函数定义与调用的方法。适合初学者和有一定基础的开发者参考学习。
|
5月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
42 0
|
5月前
|
网络协议 Linux Shell
基础入门-反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载
基础入门-反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载
|
6月前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
132 3
|
6月前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)