博客
关于我
Spark初识 --- spark-core Rdd的创建及分类
阅读量:316 次
发布时间:2019-03-04

本文共 1818 字,大约阅读时间需要 6 分钟。

Spark初识


spark与hadoop的历史回顾

在这里插入图片描述

在这里插入图片描述


Spark框架与Hadoop框架的对比

在这里插入图片描述

Spark本身是一个并行的计算框架 — RDD(支持分区)

一、RDD是弹性分布式数据集 二、RDD特点:     1.RDD是数据集   --- RDD中保存了指定路径下的数据文件中的数据集,其实真实存储的是逻辑执行计划,在Action操作之后才会收集到对应的数据集或者是进行shuffle操作后。     2.RDD是一个编程模型  --- RDD变量可以调用内部的对应方法     3.RDD相互之间有依赖关系 --- 通过不同的方法生成的RDD变量(们)之间是存在关联的     4.RDD是可以分区的 三、RDD的创建     1.SparkCore的入口SparkContext     2.RDD的创建方式:          *通过本地数据集直接创建          *通过读取外部数据集创建          *通过其它RDD衍生出新RDD

//从本地集合创建RDD  def rddCreateLocal: Unit ={       val seq = Seq("Hello","Hi","Welcome")    //指定数据集和分区数,以下两种方式的区别:parallelize可以不指定分区数    val rdd1: RDD[String] = sc.parallelize(seq,2)    val rdd2: RDD[String] = sc.makeRDD(seq,2)  }
@Test  //从外部(文件)读取数据创建RDD  def rddCreateHDFS: Unit ={       val rdd3 = sc.textFile("hdfs:///....")    /*      1.textFile传入的是什么?         * 参数传入的是一个文件的读取路径         * hdfs:///   或  file:///      2.该种方法创建是否支持分区?         * 若传入的路径是 hdfs:///... 那么由HDFS中的block来决定分区         * 注意:也可以由自己决定最小的分区数      3.支持什么平台         * AWS、阿里云     */  }
@Test  //从已有RDD衍生新的RDD  def rddCreateRDD(): Unit ={       //通过在rdd1上进行算子操作,会生成新的rdd2    //非原地计算    //类似于java中的str.substr 返回新的字符串且该字符串不可变    //所以同理,新创建的RDD也是不可变的!!!    val rdd1: RDD[Int] = sc.parallelize(Seq(1,2,3),2)    //通过rdd1创建除了出了新的rdd2且不可变    val rdd2: RDD[Int] = rdd1.map(item=>item)  }
四、RDD的分类及特点	 	 RDD算子从从功能上分为两类:		     1.Transformation(转换)  它会在一个已经存在的RDD上创建一个新的RDD,将旧的RDD的数据转换为另一种形式后放入新的RDD		     2.Action(动作) 它将执行各分区的计算任务,将得到的结果返回到Driver中     RDD中可以存放各种类型的的数据,针对不同数据类型,RDD算子又可以分为三类:	     1.针对基础类型的普通算子	     2.针对 key—values 的byKey算子	     3.针对数字类型数据处理的计算算子	   	特点:	    1.Spark中所有的Transformation都是惰性的,它不会立刻执行获得结果,只是记录在数据及上应用的操作,只有当需要结果返回时才会执行这些操作,通过	      DAGScheduler和TaskScheduler分发到集群上去运行,这个特性叫做惰性求值		    2.默认情况下,每一个Action操作运行的时候,所有与其相关联的Transformation操作都会重新运行一遍,但是也可以通过presist方法将RDD持久化到磁盘或内存中。	      此时为了下一次的方便会把数据保存到数据集上。

转载地址:http://mrhq.baihongyu.com/

你可能感兴趣的文章
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
NISP国家信息安全水平考试,收藏这一篇就够了
查看>>
NIS服务器的配置过程
查看>>
NIS认证管理域中的用户
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NiuShop开源商城系统 SQL注入漏洞复现
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLog类库使用探索——详解配置
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 模型中的偏差和公平性检测
查看>>
Vue3.0 性能提升主要是通过哪几方面体现的?
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP三大特征抽取器:CNN、RNN与Transformer全面解析
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP度量指标BELU真的完美么?
查看>>
NLP的不同研究领域和最新发展的概述
查看>>
NLP的神经网络训练的新模式
查看>>
NLP采用Bert进行简单文本情感分类
查看>>