Spark RDD

本文深入探讨了Spark中的核心概念RDD,包括RDD的概念、主要特征,以及如何创建和操作RDD。详细介绍了从对象集合和外部存储创建RDD的方法,并通过实例展示了如何使用map、filter、flatMap等转化算子进行数据处理。此外,还涵盖了reduceByKey、union、sortBy和sortByKey等操作,为读者提供了全面的Spark RDD操作指南。
摘要由CSDN通过智能技术生成

文章目录


第一章 创建RDD

一、RDD是什么

(一)、RDD概念

  • RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据
    处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行
    计算的集合。

(一)、RDD主要特征

  • RDD是不可变的,但可以将RDD转换成新的RDD进行操作
  • RDD是可分区的。RDD由很多分区组成,每个分区对应一个Task任务来执行。
  • 对RDD进行操作,相当于对RDD的每个分区进行操作。
  • RDD拥有一系列对分区进行计算的函数,称为算子。
  • RDD之间存在依赖关系,可以实现管道化,避免了中间数据的存储。

二、准备工作

(二)、准备文件

1、准备本地系统文件
  • 在/home/atguigu目录里创建test.txt
    在这里插入图片描述
  • 单词用空格分隔
    在这里插入图片描述
2、启动HDFS服务

在这里插入图片描述

3、上传文件到HDFS

在这里插入图片描述

(二)启动Spark Shell

1、启动Spark服务
  • 执行命令:start-all.sh
    在这里插入图片描述
2、启动Spark Shell
  • 执行命令:spark-shell --master=local[*]
    在这里插入图片描述
  • 查看Spark Shell的WebUI界面
    在这里插入图片描述

三、创建RDD

  • RDD中的数据来源可以是程序中的对象集合,也可以是外部存储系统中的数据集,例如共享文件系统、HDFS、HBase或任何提供HadoopInputFormat的数据源。

(一)从对象集合创建RDD

  • Spark可以通过parallelize()或makeRDD()方法将一个对象集合转化为RDD。
1、利用parallelize()方法创建RDD

在这里插入图片描述

2、利用makeRDD()方法创建RDD

在这里插入图片描述

  • 执行命令:rdd.collect(),收集rdd数据进行显示
    在这里插入图片描述

(二)从外部存储创建RDD

1、读取本地系统文件
  • 执行命令:val rdd = sc.textFile(“file:///home/test.txt”)
    在这里插入图片描述

  • 执行命令:val lines = rdd.collect(),查看RDD中的内容,保存到常量lines
    在这里插入图片描述

  • 执行命令:lines.foreach(println)(利用foreach遍历算子)
    在这里插入图片描述

  • 执行命令:for (line <- lines) println(line)
    在这里插入图片描述

2、读取HDFS上的文件
  • val rdd = sc.textFile(“hdfs://master:9000/park/test.txt”)
    在这里插入图片描述

  • 执行命令:val lines = rdd.collect,查看RDD中的内容
    在这里插入图片描述

  • 执行val sparkLines = rdd.filter(_.contains(“spark”))
    在这里插入图片描述

  • 遍历算子
    在这里插入图片描述

第二章 掌握RDD算子

一、RDD算子

二、准备工作

(一)准备文件

1、准备本地系统文件
  • 在/home/atguigu目录里创建words.txt
    在这里插入图片描述
2、把文件上传到HDFS
  • 把words.txt上传到HDFS系统的/park目录里
    在这里插入图片描述

(二)启动Spark Shell

1、启动HDFS服务
  • 执行命令:start-all.sh

在这里插入图片描述

2、启动Spark服务
  • 执行命令:./start-all.sh
    在这里插入图片描述
2、启动Spark Shell
  • 执行名命令: spark-shell --master spark://master:7077

在这里插入图片描述

三、转化算子

  • 转化算子负责对RDD中的数据进行计算并转化为新的RDD。Spark中的所有转化算子都是惰性的,因为它们不会立即计算结果,而只是记住对某个RDD的具体操作过程,直到遇到行动算子才会与行动算子一起执行。</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值