[Spark快速大数据分析]Spark基础

Spark分布式执行涉及的组件

每个Spark应用都由一个驱动程序来发起集群上的各种并行操作,驱动程序通过一个SparkContext对象访问Spark;驱动程序管理多个执行器节点,可以用SparkContext来创建RDD。

RDD(Resilient Distributed Dataset:弹性分布式数据集)

RDD特点

  • Spark中,对数据的所有操作不外乎:创建RDD、转化已有RDD、调用RDD操作进行求值。
  • Spark会自动将RDD中的数据分发到集群上,并将操作并行化执行。
  • Spark中的RDD是一个不可变的分布式对象集合

RDD两种创建方法

  • 读取一个外部数据集。如sc.textFile("readme.md")
  • 在驱动程序里分发驱动程序的对象集合(如list、set)。即把程序中一个已有集合传递给SparkContext的parallelize()方法。这种方法用的并不多,因为需要把整个数据集先放在一台机器的内存中。

RDD支持两种类型的操作——之一:转化操作(transform)

  • 返回一个新的RDD的操作。
  • 许多转化操作是针对各个元素的,但并不是所有的转化操作都是这样的。
  • 常用转化操作filter():接收一个函数,并将RDD中满足该函数的元素组成新的RDD。
  • 常用转化操作map():接收一个函数,把函数作用于RDD每个元素,所有函数返回结果组成了新的RDD。
  • 还有一些伪集合操作:RDD中最常缺失的集合属性就是元素的唯一性。可以用RDD.distinct()来生成一个只包含不同元素的新RDD。但distinct的开销很大,因为所有数据需要经过网络进行混洗(shuffle).

RDD支持两种类型的操作——之二:行动操作 (action)

  • 向驱动器程序返回结果或把结果写入外部系统的操作,会触发实际的计算。默认情况下,Spark的RDD会在每次对它们进行行动操作时重新计算。如果想在多个行动操作时重用同一个RDD,可以使用RDD.persist()把这个RDD缓存起来(持久化)。
  • RDD有一个collect(),可以用来获取整个RDD中的数据,但这要求RDD的数据是较小规模的。
  • 常用行动函数reduce():接收一个函数作为参数,这个函数要操作两个相同类型的RDD数据并返回一个同样类型的新元素。一个简单的例子就是函数“+”。
  • 比如count()

RDD支持两种类型的操作——相关

  • 转化操作和行动操作的区别:计算RDD的方式不同:Spark只会惰性计算RDD:即所有转化操作只有第一次在一个行动操作中用到时,才会真正计算涉及到的转化和行动操作。
  • 惰性求值:“我们不应把RDD看作存放着特定数据的数据集,而最好把每个RDD当作我们通过转化操作构建出来的、记录如何计算数据的指令列表

原文地址:https://www.cnblogs.com/coding-gaga/p/11443982.html

时间: 2024-08-26 02:41:39

[Spark快速大数据分析]Spark基础的相关文章

Spark快速大数据分析 01

==Spark的发展介绍== ==一个大一统的软件栈== Spark核心 计算引擎 对由很多计算任务组成的.运行在多个工作机器或者是一个计算集群上的应用调度.分发以及监控的计算引擎 速度快.通用 Spark项目包含多个密切组成的组件 优点1:软件栈中所有的程序库和高级组件都可以从下层的改进中获益 优点2:运行整个软件栈的代价变小了 优点3:能够构建出无缝整合不同处理模型的应用 Spark的各个组件 ![](http://images2017.cnblogs.com/blog/1297416/20

<Spark快速大数据分析>读书笔记(二)

PART 3 Pair RDD Spark为包含键值对类型的RDD提供了专有操作,这类RDD叫做Pair RDD(意为"对RDD") Spark中Pair RDD的创建主要有两种方式,一种方式从存储了键值对数据的文件中创建(主要内容见PART 4),另一种方式可以从其他普通RDD调用map()操作来实现: 1 #line的元素是一行单词构成的句子,map操作后每个元素为该句子的首个单词和句子本身构成一个二元元组 2 pairs = line.map(lambda x: (x.split

<Spark快速大数据分析>读书笔记(三)

PART 5 数据读取与保存 1.文件格式与文件系统: Spark支持的一些常见文件格式: 1.1文本文件: 读取:文本文件的读取通过textFile(),如果需要读取整个文件夹,可以使用wholeTextFiles(),该方法会返回一个pair RDD,键为文件名 保存:saveAsTextFile()传入一个文件保存的路径,Spark会将该路径视为目录,在该目录下保存多个文件,这样Spark就可以从各个节点并行保存了.这个过程不能控制哪个节点输出到哪个文件,但是可以对输出格式进行控制. 1.

spark快速大数据分析学习笔记*初始化sparkcontext(一)

初始化SparkContext 1// 在java中初始化spark 2 import org.apache.spark.SparkConf; 3 import org.apache.spark.api.java.JavaSparkContext; 4 5 SparkConf conf=new SparkConf().setMaster("local").setAppName("my app"); 6 //集群url:本例是运行在本地单机local:应用名,可以在集

基于Python Spark的大数据分析_pyspark实战项目课程

基于Python Spark的大数据分析(第一期) 课程介绍地址:http://www.xuetuwuyou.com/course/173 课程出自学途无忧网:http://www.xuetuwuyou.com 讲师:轩宇老师 1.开课时间:小班化教学授课,第一期开课时间为5月20号(满30人开班,先报先学!): 2.学习方式:在线直播,共8次课,每次2小时,每周2次(周三.六,晚上20:30 - 22:30),提供在线视频,课后反复学习: 3.报名课程后,请联系客服申请加入班级答疑交流QQ群:

spark快速开发之scala基础之3类,对象,特征

类 scala的类定义非常灵活 class test4 class test2{} class test3(x:Int) 定义一个带构造函数的类 class Point (x : Int,y : Int){ def add() : Int = { x1 + y2 } } 通过this来重写构造函数 def this(X1 : Int){ this(X1,1) } def this(X2 : String){ this(0,1) } 除了重写构造函数,还可以当作当前对象的引用. def add(x

spark快速开发之scala基础之2控制流程

判断结构 大体与java相当.scala没有三元表达式. val num = if(1>0) 1 else 0 //相当于匿名函数 println(num) var num2 = 0 if(1>0) num2 = 1 else num2 = 0 println(num2) 选择结构 match.与java的stiwch相当.但scala的match强大很多. 通配符匹配(Wildcard Pattern Matching ) 常量匹配 (Constant Pattern Matching )

王家林 大数据Spark超经典视频链接全集[转]

压缩过的大数据Spark蘑菇云行动前置课程视频百度云分享链接 链接:http://pan.baidu.com/s/1cFqjQu SCALA专辑 Scala深入浅出经典视频 链接:http://pan.baidu.com/s/1i4Gh3Xb 密码:25jc DT大数据梦工厂大数据spark蘑菇云Scala语言全集(持续更新中) http://www.tudou.com/plcover/rd3LTMjBpZA/ 1 Spark视频王家林第1课:大数据时代的“黄金”语言Scala 2 Spark视

【大数据分析】学习之路详解

以大数据分析师为目标,从数据分析基础.JAVA语言入门和linux操作系统入门知识学起,系统介绍Hadoop.HDFS.MapReduce和Hbase等理论知识和hadoop的生态环境 一.大数据分析的五个基本方面 1,可视化分析 大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了. 2,数据挖掘算法 大数据分析的理论核心就是数据挖掘算法,各种