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

相关文章
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
183 6
|
10天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
70 34
|
2月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
65 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
|
2月前
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
46 3
|
2月前
|
JSON 分布式计算 大数据
大数据-85 Spark 集群 RDD创建 RDD-Action Key-Value RDD详解 RDD的文件输入输出
大数据-85 Spark 集群 RDD创建 RDD-Action Key-Value RDD详解 RDD的文件输入输出
36 1
|
2月前
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
43 2
|
2月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
40 1
|
2月前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
53 1
|
2月前
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
32 0
|
2月前
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
70 3

热门文章

最新文章