1. Spark概述

1.Spark介绍

Spark,是一种通用的大数据计算框架。正如Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎。Spark是基于内存计算的框架,因此其速度是MapReduce、Hive的几倍甚至几十倍、上百倍。

Spark Core:离线计算
Spark SQL:交互式查询
Spark Streaming:实时流计算
Spark MLlib:机器学习
Spark GraphX:图计算

Spark主要用于大数据的计算,Hadoop主要用于大数据的存储(如HDFS、Hive、HBase等),以及资源调度(Yarn)。

2.大数据架构体系概览

大数据架构体系概览

3.Spark VS MapReduce的计算模型

Spark VS MapReduce的计算模型

4.Spark整体架构

Spark整体架构

5.Spark的特点

Spark的特点

6.Spark SQL和Hive的关系

Spark SQL和Hive的关系

7.Spark Streaming和Storm的计算模型对比

Spark Streaming和Storm的计算模型对比

8. action(动作)和transform(转换)的理解

action和transform是Dataset(Spark 2.1之前叫RDD)的两个非常重要的操作。
action操作主要是直接从Dataset中获取值,如:

//Scala
scala> val tf = spark.read.textFile("readme.md")
tf: org.apache.spark.sql.Dataset[String] = [value: string]

scala> tf.count()  //计算items数量
res0: Long = 126

scala> tf.first()   //Dataset的首个item值
res1: String = # Apache Spark

代码中的count操作和first操作都是action操作,这些操作直接从Dataset中获取值。
transform操作可以从一个Dataset转换到另一个Dataset,从而计算出另一个新的Dataset,如:

//Scala
val linesWithSpark = tf.filter(line => line.contains("Spark"))
linesWithSpark : org.apache.spark.sql.Dataset[String] = [value: string]

这里的linesWithSpark就是从tf转换过来的,一个新的Dataset。
还可以通过调用函数,进行链式操作transform和action:

//Scala
scala> tf.filter(line => line.contains("Spark")).count()
res3: Long = 15
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容