IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Spark-Shell的命令 -> 正文阅读

[大数据]Spark-Shell的命令

1. RDD基本概念

RDD——分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错,位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。

2. 创建RDD

  1. 本地系统创建
val rdd1 =  sc.textFile("file:///export/data/wordcount.txt")
  1. Scala已知集合创建
val rdd2 = sc.parallelize(Array(1,2,3,4,5,6))

3. RDD编程API

命令含义
map()返回一个新的rdd,由()转换后组成
filter()过滤,由()函数计算后返回值为true的元素组成
flatMap()类似于map,但输入元素可以被映射,用于词频拆分
union()相当于数学中集合的并集
intersection()相当于数学中集合的交集
distinct()去重操作后返回一个新的rdd
groupByKey()返回一个(l,iterator[数据类型]) 的rdd
reduceByKey()在一个(k,v)对的rdd上调用,返回一个新的(k,v)对rdd,用于词频统计
sortByKey在一个(k,v)对的rdd上调用,第二个值为true时按从小到大排序,false为从大到小排序
join()返回相同的key对应的所有元素,如(K,(V,W))

3.1 练习

启动spark-shell

cd /export/software/spark-2.1.0
spark-shell

练习1

//并行化生成一个rdd
val rdd1 = sc.parallelize(List(5,6,4,7,3,8,2,9,1,10))
//对rdd1里面每一个元素乘2然后排序
val rdd2 = rdd1.map(x=>x*2)
val rdd3 = rdd2.sortByKey(x=>x,true)
//过滤出大于等于十的元素
val rdd4 = rdd3.filter(x=>x>=10)
//最终查看
rdd4.collect

练习2

val rdd1 = sc.parallelize(Array("a b c", "d e f", "h i j"))
//拆分rdd1每一个元素
val rdd2 = rdd1.flatMap(x=>x.split(" "))
//查看
rdd2.collect

练习3

val rdd1 = sc.parallelize(List(5, 6, 4, 3))
val rdd2 = sc.parallelize(List(1, 2, 3, 4))
//求并集
val rdd3 = rdd1.union(rdd2)
//求交集
val rdd4 = rdd1.intersection(rdd2)
//去重
val rdd5 = rdd4.distinct()
//查看
rdd5.collect

练习4

val rdd1 = sc.parallelize(List(("tom", 1), ("jerry", 3), ("kitty", 2)))
val rdd2 = sc.parallelize(List(("jerry", 2), ("tom", 1), ("shuke", 2)))
//求join
val rdd3 = rdd1.join(rdd2)
//求并集
val rdd4 = rdd1.union(rdd2)
//按key分组
val rdd5 = rdd4.groupByKey()
//查看
rdd5.collect

练习5

val rdd1 = sc.parallelize(List(("tom", 1), ("tom", 2), ("jerry", 3), ("kitty", 2)))
val rdd2 = sc.parallelize(List(("jerry", 2), ("tom", 1), ("shuke", 2)))
//join
val all = rdd1.join(rdd2)
//分组
val group = all.groupByKey()
//查看
group.collect
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:29:13  更:2021-08-10 13:31:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 19:24:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码