Spark发布1.3.0版本

3月13日,Spark 1.3.0版本与我们如约而至。这是Spark 1.X发布计划中的第四次发布,距离1.2版本发布约三个月时间。据Spark官方网站报道,此次发布是有史以来最大的一次发布,共有174位开发者为代码库做出贡献,提交次数超过1000次。

此次版本发布的最大亮点是新引入的DataFrame API。对于结构型的DataSet,它提供了更方便更强大的操作运算。事实上,我们可以简单地将DataFrame看做是对RDD的一个封装或者增强,使得Spark能够更好地应对诸如数据表、JSON数据等结构型数据样式(Schema),而不是传统意义上多数语言提供的集合数据结构。在一个数据分析平台中增加对DataFrame的支持,其实也是题中应有之义。诸如R语言、Python的数据分析包pandas都支持对Data Frame数据结构的支持。事实上,Spark DataFrame的设计灵感正是基于R与Pandas。

Databricks的博客在今年2月就已经介绍了Spark新的DataFrame API。文中提到了新的DataFrames API的使用方法,支持的数据格式与数据源,对机器学习的支持以及性能测评等。文中还提到与性能相关的实现机制:

与R/Python中data frame使用的eager方式不同,Spark中的DataFrames执行会被查询优化器自动优化。在DataFrame上的计算开始之前,Catalyst优化器会编译操作,这将把DataFrame构建成物理计划来执行。

由于Catalyst进行了两种类型的优化:逻辑优化与物理优化(生成JVM bytecode),因而相较于RDD而言,DataFrame有了更好的性能表现。性能对比如下图所示:

Spark的官方网站已经给出了DataFrame API的编程指导。DataFrame的Entry Point为Spark SQL的SQLContext,它可以通过SparkContext对象来创建。如果希望DataFrame与RDD互操作,则可以在Scala中引入隐式装换,完成将RDD转换为DataFrame。由于DataFrame提供了许多Spark SQL支持的功能,例如select操作,因此,它被放到Spark SQL组件中,而不是作为另一种RDD放到Spark Core中。

在Spark 1.3.0版本中,除了DataFrame之外,还值得关注的一点是Spark SQL成为了正式版本,这意味着它将更加的稳定,更加的全面。或许,是时候从HIVE转向Spark SQL了。根据我们的项目经验,代码库从HIVE向Spark SQL的迁移还是比较容易的,毕竟二者的SQL语法非常接近。官方文档也宣称它完全向后兼容HiveQL方言。当然,如果你还在使用Shark,就更有必要将其升级到Spark SQL。

对于其他组件,如Spark ML/MLlib、Spark Streaming和GraphX,最新版本都有各种程度的增强。由于目前Spark的版本发布是定期的三个月周期发布,因此除了每次发布版本的里程碑特性外,其余特性可能都是对现有组件的增强,尤其可能是增加新的算法支持(如机器学习中对LDA的支持)或者对第三方工具的支持(如Streaming中对Kafka的Python支持)。Spark社区还会在发布版本之前对将要发布的特性进行投票,这或许是非常好的开源产品管理实践。

若需了解最新发布的Spark 1.3.0的更多内容,可以访问Spark官方网站的发布公告。

原文发布于微信公众号 - 逸言(YiYan_OneWord)

原文发表时间:2015-03-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python区块链

Python爬取100G级别,2000K以上数据量,用mysql还是mongodb?

这个问题我们可以从两个角度去解答。一个是100G的数据量用MySQL和MongoDB在存读取上有什么区别,另一个是数据本身的结构和你要进行的应用来考虑使用哪种数...

54215
来自专栏FreeBuf

利用USB橡皮鸭在目标机器上启动Empire或Meterpreter会话

今天我将教大家如何使用Rubber Ducky在渗透中建立Empire或Meterpreter会话连接。然而对于Ducky而言,想要完成大多数现实场景中的USB...

3477
来自专栏Crossin的编程教室

【Python 第3课】IDE

昨天的课发出去之后,有不少同学发来了反馈,有完成截屏的,也有遇到问题的。一些问题突然让我意识到,很多地方自己描述得不是很到位,会产生歧义,或者干脆就很难听懂。比...

2586
来自专栏乐沙弥的世界

Oracle ADDM性能诊断利器及报告解读

性能优化是一个永恒的话题,性能优化也是最具有价值,最值得花费精力深入研究的一个课题,因为资源是有限的,时间是有限的。在Oracle数据库中,随着Oracle功能...

892
来自专栏CSDN技术头条

Apache Ignite——新一代数据库缓存系统

【编者按】飞速增长的数据需要大量存储,对这些数据的管理也不是一件容易的事。但相比于存储和管理,如何处理数据才是开发人员真正的挑战。对于TB级别数据的存储和处理通...

2199
来自专栏静晴轩

Cleaver快速制作网页PPT

如今互联网时代,以浏览器作为入口,已经有越来越多的桌面应用被web应用所取代。微软最赚钱的Office办公软件,也正在被免费的web应用所吞噬。如今即便薄学如我...

3308
来自专栏腾讯大数据的专栏

Hadoop Raid-实战经验总结

分布式文件系统用于解决海量数据存储的问题,腾讯大数据采用HDFS(Hadoop分布式文件系统)作为数据存储的基础设施,并在其上构建如Hive、HBase、Spa...

18610
来自专栏大魏分享(微信公众号:david-share)

后容器时代技术制高点:API管理平台3Scale的架构设计与部署

3012
来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–报价处理(232)-12组件和活动更新

image.png CJ20N组件和活动更新 由于客户修改订购的最终产品数量,项目必须根据这一新的信息进行更改。注意的是,项目的组件和作业的期间也需要进行相应的...

3075
来自专栏杨建荣的学习笔记

通过shell脚本监控sql执行频率(r3笔记第50天)

在生产环境中,可能会存在各种潜在的sql问题,比如由于硬件资源导致,如果影响到了IO,CPU,就会导致一些本来运行很快的sql语句变慢或者系统响应严重减缓。 比...

34213

扫码关注云+社区