大数据技术学习之Spark技术总结
Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小(大数据库架构中这是是否考虑使用Spark的重要因素)。
1、Spark的核心是什么?
RDD是Spark的基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD也是Spark非常核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。
RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作。这对于迭代运算比较常见的机器学习算法, 交互式数据挖掘来说,效率提升比较大。
2、Spark的适用场景有哪些?
由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合。总的来说Spark的适用面比较广泛且比较通用。
3、Spark支持的编程语言有哪几种?
Spark通过与编程语言集成的方式暴露RDD的操作,类似于DryadLINQ和FlumeJava,每个数据集都表示为RDD对象,对数据集的操作就表示成对RDD对象的操作。Spark主要支持的编程语言是Scala、java、python。
Scala
Spark使用Scala开发,默认使用Scala作为编程语言。编写Spark程序比编写Hadoop MapReduce程序要简单的多,SparK提供了Spark-Shell,可以在Spark-Shell测试程序。
Java
Spark支持Java编程,但对于使用Java就没有了Spark-Shell这样方便的工具,其它与Scala编程是一样的,因为都是JVM上的语言,Scala与Java可以互操作,Java编程接口其实就是对Scala的封装。
Python
现在Spark也提供了Python编程接口,Spark使用py4j来实现python与java的互操作,从而实现使用python编写Spark程序。Spark也同样提供了pyspark,一个Spark的python shell,可以以交互式的方式使用Python编写Spark程序。
- 点赞
- 收藏
- 分享
- 文章举报
- 大数据技术:Spark SQL 知识学习!
- 大数据学习总结(三) Spark漫谈
- 大数据技术之_19_Spark学习_06_Spark 源码解析小结
- 大数据技术之_19_Spark学习_04_Spark Streaming 应用解析小结
- 大数据学习总结(二) Spark计算原理
- 大数据技术之_19_Spark学习_05_Spark GraphX 应用解析小结
- 大数据技术之_19_Spark学习_02_Spark Core 应用解析小结
- 大数据技术之_19_Spark学习_03_Spark SQL 应用解析小结
- 大数据技术之_19_Spark学习_01_Spark 基础解析小结(无图片)
- 后台server常用技术学习总结
- 技术研究思路以及Spark基础学习笔记
- 【Spark大数据处理技术】RDD及编程接口:(一)
- 互联网技术学习中的一些资源总结
- javaweb开发要学习的所有技术和框架总结:
- 大数据学习笔记之Spark(五):SparkGraphX 应用解析
- 五年技术成长之后的技术学习经验总结j
- 成都大数据Hadoop与Spark技术培训班
- 总结学习的技术
- spark大数据处理技术--阅读笔记
- 大数据技术分享:Spark Streaming 技术点汇总