Spark 入门_读取 HDFS 上的文件|学习笔记

简介: 快速学习 Spark 入门_读取 HDFS 上的文件

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

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


Spark 入门_读取 HDFS 上的文件

课题引入:

Spark 是大型搜索引擎,需要处理大规模数据文件,若仅是单机无法存储,因此需要存储到 HDFS ,本节重点介绍如何读取 HDFS 上的文件。


内容介绍:

一、上传文件到 HDFS 中

二、在 spark shell 中访问 HDFS


一、上传文件到 HDFS 中

cd/export/data

Hdfs dfs -mkdir/dataset

Hdfs dfs -put wordcount.txt/dataset/


二、在 spark shell 中访问 HDFS Valsourcerdd=sc.textfile (“hdfs://node01:8020/dataset/wordcount.

txt”)

Valflattencount

rdd=sourcerdd.flatmap(_.split(“”)).map((_,1))

Val aggcount rdd=flattencount rdd.reduceByKey(_ + _)

Val result=aggcount rdd.collect

执行如下:

[root@node 01 data]#ls

wordcount. txt

[root@node 01 data]#cd/export/data

[root@node 01 data]#ls

wordcount. txt

[root@node 01 data]#vi wordcount, txt

得到:

hadoop spark flume

spark hadoop

flume hadoop

保存并且退出,继续执行如下:

[root@node 01 data]#ls

wordcount. txt

[root@node 01 data]#cd/export/data

[root@node 01 data]#ls

wordcount. txt

[root@node 01 data]#vi wordcount, txt

[root@node 01 data]#hdfs dfs -mkdir/data

[root@node 01 data]#hdfs dfs -put wordcount.txt/data

[root@node 01 data]#

通过 UI 查看 HDFS中是否存在此文件。(如图)

image.png

将本地文件删除,注意 data 目录下没有文件,退出到 servers spark 目录中,执行 bin/spark-shell --master local[6],     启动shell 窗口,等待结果。

读取所用的 sc 对象是 spark context available as ‘sc’ ,即 spark 试样启动时自动创建 spark context 对象被叫做 “sc” 。则可以 Val rdd1 =sc.textFile(“hdfs://wordcount

.txt”) ,rdd1.collect() 收集数据。

(如图)另一种读取方式即:Vale

Rdd1=sc.textFile(“/data/workcount.txt”) 默认读取的 HDFS 的文件。

编写案例 val rdd2=rdd1.flatmap(item=>item.split(“”)) ,转换为三条数据,一对多的转换,第一个元素去往 item .split ,成为数组,存放 hadoop,spark,flume,被 flatmap 展平成三个元素,此为 flatmap 的执行流程。然后进行 rdd2.map(item=>(item,1)) 做转换,命名为 rdd3。

val rdd4 的创建, val rdd4=rdd3.reduce

ByKey((curr,agg)=>curr+agg), 得到 rdd4 在 rrd4 的基础上进行数据收集即: rdd4.collect()。

代码完成,若代码 rrd4 代码不进行,结果没有进行计算,只有在调用 collect 命令才会进行计算结果,此为惰性求值,即之前不进行求值,最后进行计算求值。

image.png

相关文章
|
5月前
|
SQL 分布式计算 调度
Spark入门(一篇就够了)(三)
Spark入门(一篇就够了)(三)
121 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
210 0
|
4月前
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
120 0
|
1天前
|
分布式计算 大数据 数据处理
[AIGC大数据基础] Spark 入门
[AIGC大数据基础] Spark 入门
|
5月前
|
存储 缓存 分布式计算
Spark入门(一篇就够了)(一)
Spark入门(一篇就够了)(一)
132 0
|
5月前
|
分布式计算 Hadoop 大数据
178 Spark入门
178 Spark入门
30 0
|
2月前
|
分布式计算 资源调度 监控
Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(一)
Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(一)
93 1
|
2月前
|
数据采集 分布式计算 Linux
Spark实时(数据采集)项目小知识点--sed -i命令详解及入门攻略
Spark实时(数据采集)项目小知识点--sed -i命令详解及入门攻略
111 0
|
3月前
|
存储 分布式计算 Hadoop
HDFS如何处理大文件和小文件的存储和访问?
HDFS如何处理大文件和小文件的存储和访问?
48 0
|
4月前
|
SQL 分布式计算 Hadoop
[AIGC ~大数据] 深入理解Hadoop、HDFS、Hive和Spark:Java大师的大数据研究之旅
[AIGC ~大数据] 深入理解Hadoop、HDFS、Hive和Spark:Java大师的大数据研究之旅