写点什么

Spark 发布 1.3.0 版本

2015 年 3 月 16 日

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 官方网站的发布公告

2015 年 3 月 16 日 08:152946
用户头像

发布了 109 篇内容, 共 35.8 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

mongodb 源码实现系列 - mongodb详细表级操作及详细时延统计实现原理(快速定位表级时延抖动)

杨亚洲(专注mongodb及高性能中间件)

数据库 mongodb 性能调优 源码刨析 分布式数据库mongodb

ISP芯片:如何让数字之眼“看清”真实世界?

脑极体

生产环境全链路压测建设历程之九 淘宝网全链路压测的原理

数列科技杨德华

《逻辑和计算机设计基础》第五版(英文原版)PDF免费下载

计算机与AI

计算机基础 计算机组成原理

Python进阶——什么是描述符?

Kaito

Python

Spring Boot 过滤器

噜噜猫

Spring Boot

时序数据库DolphinDB和TimescaleDB 性能对比测试报告

DolphinDB

大数据处理 分布式系统 时序数据库 DolphinDB 数据库开发

我国一项物联网安全测试技术成为国际标准;Windows 10将支持安卓应用

京东科技开发者

记一次神奇的MySQL死锁

废材姑娘

spring MySQ

访问者模式及其在Java Parser中的应用

maijun

甲方日常 67

句子

工作 随笔杂谈 日常

新增原创标签相关改动

yinhaixiang

aa bb cc

金融科技 | 建设中台能力,助力开放生态

xcbeyond

金融科技 中台战略 中台架构

Java虚拟机科普系列—元空间Metaspace的内存结构

Java老k

Java JVM Java虚拟机 metaspace

新增原创标签相关改动

yinhaixiang

测试 个人 aa bb

【架构师训练营 1 期】第十二周作业

诺乐

区块链发展前景广阔,要紧跟时代步伐

13828808769

区块链发展 时代发展

浅谈产品与项目之间的爱恨情仇

跨越“数字鸿沟”,日本老年智能化服务的解法

脑极体

Week_12 作业

golangboy

极客大学架构师训练营

数据类型· 第1篇《元组和列表的性能分析、命名元组》

清菡

测试开发

学习笔记4

Qx

还在手写Operator?是时候使用Kubebuilder了

Java架构师迁哥

以理性不断的崇敬 - 对DDD之后复杂业务软件系统设计的思考

Winfield

领域驱动设计 DDD 架构设计

求求你,别再用wait和notify了!

王磊

Java

第八周课后练习

jizhi7

第八周-总结

jizhi7

【架构师训练营 1 期】第十二周学习总结

诺乐

FORSAGE智能合约矩阵系统软件APP开发

开發I852946OIIO

系统开发

ReactNative | 项目复盘,涉及环境、RN版本升级、安全等方案

梁龙先森

前端 混合应用开发 React Native

如何搭积木式的快速开发H5页面?

徐小夕

Java 前端 前端工程 React 数据可视化

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

Spark发布1.3.0版本-InfoQ