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

相关文章
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
522 6
|
JSON 分布式计算 大数据
大数据-85 Spark 集群 RDD创建 RDD-Action Key-Value RDD详解 RDD的文件输入输出
大数据-85 Spark 集群 RDD创建 RDD-Action Key-Value RDD详解 RDD的文件输入输出
166 1
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
209 0
|
存储 分布式计算 资源调度
Hadoop生态系统概览:从HDFS到Spark
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。它由多个组件构成,旨在提供高可靠性、高可扩展性和成本效益的数据处理解决方案。本文将介绍Hadoop的核心组件,包括HDFS、MapReduce、YARN,并探讨它们如何与现代大数据处理工具如Spark集成。
984 0
|
分布式计算 监控 大数据
spark实战:实现分区内求最大值,分区间求和以及获取日志文件固定日期的请求路径
spark实战:实现分区内求最大值,分区间求和以及获取日志文件固定日期的请求路径
232 1
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之spark3.1.1通过resource目录下的conf文件配置,报错如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
消息中间件 分布式计算 关系型数据库
使用Apache Spark从MySQL到Kafka再到HDFS的数据转移
使用Apache Spark从MySQL到Kafka再到HDFS的数据转移
258 0
|
消息中间件 分布式计算 Kafka
利用Spark将Kafka数据流写入HDFS
利用Spark将Kafka数据流写入HDFS
374 0
|
SQL 分布式计算 大数据
Spark开发实用技巧-从入门到爱不释手
Spark开发实用技巧-从入门到爱不释手
159 0
|
SQL 分布式计算 Java
IDEA 打包 Spark 项目 POM 文件依赖
这是一个 Maven POM 示例,用于构建一个使用 Spark 与 Hive 的项目,目标是将数据从 Hive 导入 ClickHouse。POM 文件设置了 Scala 和 Spark 的依赖,包括 `spark-core_2.12`, `spark-sql_2.12`, 和 `spark-hive_2.12`。`maven-assembly-plugin` 插件用于打包,生成包含依赖的和不含依赖的两种 JAR 包。`scope` 说明了依赖的使用范围,如 `compile`(默认),`provided`,`runtime`,`test` 和 `system`。
423 0