Spark1.6 DataSets简介
Apache Spark提供了强大的API,以便使开发者为使用复杂的分析成为了可能。通过引入SparkSQL,让开发者可以使用这些高级API接口来从事结构化数据的工作(例如数据库表,JSON文件),并提供面向对象使用RDD的API,开发只需要调用相关 的方法便可使用spark来进行数据的存储与计算。那么Spark1.6带给我们了些什么牛逼的东西呢? 额。。。
Spark1.6提供了关于DateSets的API,这将是Spark在以后的版本中的一个发展趋势,就如同DateFrame,DateSets提供了一个有利于Spark Catalyst optimizer 以及数据字段查询的分析优化,并支持更加快速的内存编码。并且数据集扩展了编译时的类型安全检查机制,可以更好地在程序运行前就检查错误。
DataSets是一个强类型的、不可变的对象集合,DataSets的API核心是一个新的编码器,改编码器的作用是将JVM的对象与表结构进行转换。使其可以操作序列化的数据及提高了内存的利用率。同时,用户在使用时,发现与一般的RDD的API极其相似,提供了很多相同的功能转换。如下代码,进行文本中单词的拆分。
RDDs:
val lines = sc.textFile("/wikipedia")
val words = lines
.flatMap(_.split(" "))
.filter(_ != "")
DataSets:
val lines = sqlContext.read.text("/wikipedia").as[String]
val words = lines
.flatMap(_.split(" "))
.filter(_ != "")
同时DataSets也支持聚合操作,比如计算每个单词的出现次数:
RDDs:
val counts = words
.groupBy(_.toLowerCase)
.map(w => (w._1, w._2.size))
DataSets:
val counts = words
.groupBy(_.toLowerCase)
.count()
通过执行发现DataSets的执行速度要比原生的RDD快很多。同时,如果使用RDD需要开发人员自己去优化并行算法,或者书写方式来达到DataSets的效果。

同时,DataSets API的另一个优势在于减少内存的使用量。Spark能够解析在DataSets中结构化的数据,并在内存中优化结构,将DataSets中的数据缓存起来。同比原生的RDD,要节省相当多的内存空间。

Spark1.6 DataSets简介的更多相关文章
- Spark入门实战系列--1.Spark及其生态圈简介
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .简介 1.1 Spark简介 年6月进入Apache成为孵化项目,8个月后成为Apache ...
- Spark之 spark简介、生态圈详解
来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介Spark是加州大学伯克利分校AMP实验室(Algorithm ...
- (一)Spark简介-Java&Python版Spark
Spark简介 视频教程: 1.优酷 2.YouTube 简介: Spark是加州大学伯克利分校AMP实验室,开发的通用内存并行计算框架.Spark在2013年6月进入Apache成为孵化项目,8个月 ...
- Spark 官方文档(5)——Spark SQL,DataFrames和Datasets 指南
Spark版本:1.6.2 概览 Spark SQL用于处理结构化数据,与Spark RDD API不同,它提供更多关于数据结构信息和计算任务运行信息的接口,Spark SQL内部使用这些额外的信息完 ...
- PageRank算法简介及Map-Reduce实现
PageRank对网页排名的算法,曾是Google发家致富的法宝.以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理. 一.什么是pagerank Pag ...
- Apache Spark-1.0.1集群搭建
欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3866791.html Apache Spark a fast and general engine ...
- [转]SRTM、ASTER GDEM等全球数字高程数据(DEM)下载方式简介
之前写过一篇短文对比过几种数字高程数据的区别:5种全球高程数据对比,这篇文章简要介绍下如何下载这些数据. 1.DLR的数字高程数据.该数据也是SRTM(shuttle radar topo ...
- 部分GDAL工具功能简介
主要转自http://blog.csdn.net/liminlu0314?viewmode=contents 部分GDAL工具功能简介 gdalinfo.exe 显示GDAL支持的各种栅格文件的信息. ...
- Cloudera Development Kit(CDK) 简介
Cloudera Development Kit(CDK) 简介 guibin.beijing@gmail.com 2013.07.02 CDK简介 CDK(Cloudera Development ...
随机推荐
- leetcode 93 Restore IP Addresses ----- java
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- ..c++中用c语言的输入法
题目: 竞选时,要求选民在n个候选人中选择,n个人的名字为 A,B,C,D--连续n个大写字母,如果选择n个人名字之外的人员,则为废票. 统计时以输入'#'为结束标记.请按候选人的得票数目从大到小 ...
- HDU-4003 Find Metal Mineral (树形DP+分组背包)
题目大意:用m个机器人去遍历有n个节点的有根树,边权代表一个机器人通过这条边的代价,求最小代价. 题目分析:定义状态dp(root,k)表示最终遍历完成后以root为根节点的子树中有k个机器人时产生的 ...
- ed编辑器使用
evilxr@IdeaPad:/tmp$ ed aa.c 0 a enter another words hello nice www.evilxr.com . w aa.c 46 q a 表示添加内 ...
- Scrum 项目3.0
Scrum 项目3.0 3.0----------------------------------------------------- SCRUM 流程的步骤2: Spring 计划 1. 确保pr ...
- 文件的搜寻【转vbird】
which (寻找『运行档』) [root@www ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 分 ...
- Instructions函数对照表:02 xmmintrin.h与SSE指令集[转]
更多详情见——http://www.cnblogs.com/zyl910/archive/2012/04/26/md00.htmlSIMD函数整理:00 索引贴 R:寄存器.M:64位MM寄存器:X: ...
- Apache安全配置方案
Apache安全配置方案 from:http://drops.wooyun.org/%e8%bf%90%e7%bb%b4%e5%ae%89%e5%85%a8/2727 apache的一些配置主要是通过 ...
- C# String与string的区别
C#中同时存在String与string MSDN中对string的说明: string is an alias for String in the .NET Framework.string是Str ...
- Oracle数据库—— 游标的创建和应用
一.涉及内容 游标的创建与应用 二.具体操作 (一)填空题 1.PL/SQL 程序块主要包含3个部分:声明部分.(执行部分 ).异常处理部分. 2.自定义异常必须使用(RAISE )语句引发. (二) ...