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

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 快速学习 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

相关文章
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
1219 6
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
551 34
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
401 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
237 3
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
324 2
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
309 1
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
502 1
|
存储 分布式计算 Hadoop
|
SQL 分布式计算 算法
Spark入门到精通视频学习资料--第五章:Shark介绍与使用(2讲)
熟悉Hadoop的应该就知道HBase和Hive,如果了解这两个组件,那么对于Shark就不会那么陌生了,也就比较容易上手了。 Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了 Hive的API来实现query Parsing和 Logic Plan generation,最后的PhysicalPlan execution阶段用Spark代替Hadoop MapReduce。
1543 0
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
697 0

热门文章

最新文章