初见spark-02(RDD及其简单算子)
今天,我们来进入spark学习的第二章,发现有很多事都已经开始变化,生活没有简单的朝自己想去的方向,但是还是需要努力呀,不说鸡汤之类的话了,
开始我们今天的spark的旅程
一.RDD是什么
rdd的中文解释为弹性分布式数据集,全称Resilient Distributed Datases,即内存中的数据集,
RDD只读,可分区,这个数据集的全部或部分可以缓存到内存之中,在多次时间间重用,所谓
弹性,是指内存不够是可以与磁盘进行互换
二.spark算子
spark算子一共分为两类,一类叫做Transformation(转换),一类叫做Action(动作)
Transformation延迟执行,Transformation会记录元数据信息,当计算任务触犯Action才开始真正的执行(这个上一个章节也介绍过)

这个里面起前面无论是map还是filter的方法,都是transform方法,所以这个值并没有真正的别改变,直到collect,这个是Action,则它真正的值才会被调用
三.创建RDD的两种方式
1.通过HDFS支持的文件系统创建RDD,RDD里面没有真正要计算的数据,只记录一下元数据
2.通过scala集合或数组以并行化的方式创建RDD
看一下内部实现对于RDD的概括(5个特点)
Internally, each RDD is characterized by five main properties:
- A list of partitions
- A function for computing each split
- Alist of dependencies on other RDDs
- Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
- Optionally, a list of preferred locations to compute each split on (e.g. block · locations an HDFS file)
四.spark在IDEA上的第一个程序
1.首先我们先在idea上写一个spark程序,然后package
object WordCount {
def main(args: Array[String]): Unit = {
//非常重要,通向spark集群的入口
val conf = new SparkConf().setAppName("WC")
val sc = new SparkContext(conf)
sc.textFile(args(0)).flatMap(_.split(" ")).map(((_,1))).reduceByKey(_+_).sortBy(_._2).saveAsTextFile(args(1))
sc.stop()
}
}
首先先要澄清一点,这个里面我们的spark是采用maven的形式来创建的,所以我们的pom文件加上上对spark的支持
我们在package的时候,会在target中生成两个jar包,我们选容量大的,应为可能要包括其他的库
2.上传到Linux上面,并提交(这个里面和在hadoop上面执行jar包很相似)
./spark-submit
--master spark://192.168.109.136:7077
--class cn.wj.spark.WordCount
--executor-memory 512m
--total-executor-cores 2 /tmp/hello-spark-1.0.jar hdfs://192.168.109.136:9000/wc/* hdfs://192.168.109.136:9000/wc/out
即可,这个时候我们可以通过192.168.109.136:8080可以查看当前spark的项目执行情况
五.Master与Worker的关系
Master管理所有的Worker,进而进行资源的调度,Worker管理当前的节点,Worker会启动Executor来完成真正的计算
初见spark-02(RDD及其简单算子)的更多相关文章
- 关于spark RDD trans action算子、lineage、宽窄依赖详解
这篇文章想从spark当初设计时为何提出RDD概念,相对于hadoop,RDD真的能给spark带来何等优势.之前本想开篇是想总体介绍spark,以及环境搭建过程,但个人感觉RDD更为重要 铺垫 在h ...
- spark中RDD的转化操作和行动操作
本文主要是讲解spark里RDD的基础操作.RDD是spark特有的数据模型,谈到RDD就会提到什么弹性分布式数据集,什么有向无环图,本文暂时不去展开这些高深概念,在阅读本文时候,大家可以就把RDD当 ...
- [转]Spark学习之路 (三)Spark之RDD
Spark学习之路 (三)Spark之RDD https://www.cnblogs.com/qingyunzong/p/8899715.html 目录 一.RDD的概述 1.1 什么是RDD? ...
- Spark学习之路 (三)Spark之RDD
一.RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素 ...
- Spark之 RDD
简介 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合. Resilien ...
- Hadoop学习(9)-spark的安装与简单使用
spark和mapreduce差不多,都是一种计算引擎,spark相对于MapReduce来说,他的区别是,MapReduce会把计算结果放 在磁盘,spark把计算结果既放在磁盘中有放在内存中,ma ...
- Spark之RDD
Spark学习之路Spark之RDD 目录 一.RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数 ...
- Spark RDD :Spark API--Spark RDD
一.RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素 ...
- Spark学习之路 (三)Spark之RDD[转]
RDD的概述 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的 ...
随机推荐
- 转:用AutoCAD 系统变量编程
Autocad的系统变量, 我们可以通过如下得到: Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable(/*MSG0* ...
- ARouter使用随记
官方文档地址 其他配置 1.创建一个config.gradle ext{ isDebug = false //false:作为Lib集成存在, true:作为application组件存在 andro ...
- 从PeopleEditor控件中取出多用户并更新到列表
如果一个列表中有一个字段类型为用户或用户组,并且设置为用户,允许多值的话,那么用代码进行更新的时候就必须将这个字段的值赋成SPFieldUserValueCollection类型,以下代码即为从Peo ...
- SpringBoot支持Xml数据格式显示
第一步:pom文件添加依赖 <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> < ...
- UI自动化录制工具----UI Recorder
1.系统和工具包 windows 7 64位 jdk,nodejs,webdriver,浏览器都放在工具包目录内.(晚上回去把文件上传到云盘,在分享给大家) 2.安装JDK和node.js 2.1 J ...
- Angular2、4入门基础知识(小的概念)
1. 使用引用符来格式化HTML代码. @Component({ selector: 'app-heroes', templateUrl: './heroes.component.html', sty ...
- 如何查看某个用户指定时间段的ABAP开发记录
输入用户名和想查询的时间段: 执行得到结果.双击可查看具体代码: 工具源代码: REPORT tool_dev_history. PARAMETERS: name TYPE usr02-bname O ...
- 377. Combination Sum IV 70. Climbing Stairs
back function (return number) remember the structure class Solution { int res = 0; //List<List< ...
- MVC中某个页面不需要引用母版页的正确写法
有些页面想使用单独的样式不想用母版页的时候,可以在开始声明下,就可以不用母版页的CSS和JS引用了语法如下: @{Layout = "";} . 非常之简单
- Gym - 100004A 树的性质
题目: 题意: 从节点 0 出发,把每一个节点都经过一遍,然后从一个节点回到学校. 由于有 n+1个节点,n条边,而且保证两两互相到达,那么这就是一个棵树. 于是,可以发现,如果从一个点出发,然后回到 ...