Spark Release 2.*.* 新特性及修复的bug
来源:互联网 发布:电视盒子软件下载 编辑:程序博客网 时间:2024/05/03 12:13
Spark Release 2.0.0
Apache Spark 2.0.0是在2.*主线的第一次发布。主要更新包括API可用性,SQL 2003支持,性能改进,结构化流式处理,R UDF支持以及操作改进。此外,此版本包括超过300个贡献者的超过2500个补丁。
我们策划了一个高级别的更改列表,按主要模块分组。
API Stability
Apache Spark 2.0.0是2.X主要版本的第一个版本。Spark保证所有2.X版本的非实验性API的稳定性。虽然API保持在很大程度上类似于1.X,Spark 2.0.0确实有API突破性的改变。 这些将在 Removals, Behavior Changes and Deprecations 部分阐述。
Core and Spark SQL
Programming APIs
Spark 2.0中最大的变化之一是新的更新的API。
- 统一DataFrame和Dataset:在Scala和Java中,DataFrame和Dataset已经统一,即DataFrame只是Row的Dataset的类型别名。 在Python和R中,由于缺少类型安全性,DataFrame是主要的编程接口。
- SparkSession:新的入口点,用于替换DataFrame和Dataset API的旧SQLContext和HiveContext。 保留SQLContext和HiveContext以实现向后兼容。
- SparkSession的新的,精简的配置API。
- 更简单,更高性能的累加器API。
- 用于数据集中类型化聚合的新的改进的Aggregator API。
SQL
Spark 2.0使用SQL2003支持大大提高了SQL功能。 Spark SQL现在可以运行所有99个TPC-DS查询。 更重要的是,我们已经改进:
- 一个支持ANSI-SQL以及Hive QL的本机SQL解析器。
- 本机DDL命令实现。
- 子查询支持,包括:
不相关的标量子查询。相关的标量子查询。NOT IN 谓词子查询(在WHERE / HAVING子句中)。IN 谓词子查询(在WHERE / HAVING子句中)。(NOT) EXISTS谓词子查询(在WHERE / HAVING子句中)。
- 支持视图规范化。
当编译的时候没有加入Hive的支持(也就是没加入-Phive),Spark SQL将支持几乎所有Hive支持的功能,除了Hive连接,Hive UDF和脚本转换。
新特性
- 本机CSV数据源,基于Databricks的spark-csv模块。
- 用于缓存和运行时执行的堆外内存管理。
- 支持Hive风格的bucketing。
使用sketches进行粗略的总结统计(Approximate summary statistics),包括approximate quantile, Bloom filter以及count-min sketch。
Performance and Runtime
- 常见的SQL操作和DataFrame通过一个称为whole stage code generation技术之后有了实质性的性能提升(大约有2-10x);
- 通过vectorization技术提升了Parquet文件扫描的吞吐量;
- 在Catalyst query optimizer中为常见的工作流(common workloads)进行了优化;
- 通过内置实现所有的窗口函数来提升Windows的性能;
- 为内置的数据源进行自动地文件合并。
MLlib
现在基于DataFrame的API是主要的API了。而基于RDD的API已经进入到维护阶段。详细细节请参考MLlib用户指南。
SparkR
Streaming
Spark 2.0开始引入了实验性的Structured Streaming,它是构建在Spark SQL和Catalyst optimizer之上的高级streaming API。Structured Streaming使得用户可以在流数据的sources和sinks使用静态的数据源一样的DataFrame/Dataset API,并使用Catalyst optimizer自动生成查询计划。
在DStream API方面,最大的更新是支持Kafka 0.10。
Dependency, Packaging, and Operations
Spark的操作和打包过程有很多的改变:
1、Spark 2.0在生产部署的时候不再需要fat assembly jar;
2、Akka的依赖已经被全部移除了。所以用户的程序可以引入任何版本的Akka;
3、Kryo的版本升级到3.0;
4、编译时默认使用Scala 2.11而不是2.10。
Removals, Behavior Changes and Deprecations
Spark Release 2.1.0
原文链接:
Spark Release 2.0.0;
Apache Spark 2.0.0正式发布及其更新介绍;
Spark Release 2.1.0;
Apache Spark 2.1.0正式发布;
- Spark Release 2.*.* 新特性及修复的bug
- CDH5新特性及Bug修复
- CDH5新特性及Bug修复
- kudu1.5.0新特性和修复Bug
- Spark-0.8 release新增特性及看点
- Spark-0.8 release新增特性及看点
- 使用Git分支开发新特性或修复Bug与使用Git分支开发新特性或修复Bug
- 拖拽及相关BUG的修复
- Spark-1.5/1.6的新特性
- spark 2.0 新特性
- Oracle 10G First Release的新特性简介(上)
- Oracle 10G First Release的新特性简介(下)
- 修复线上问题,引起新的bug-总结
- bug的修复
- 修复bug的思考
- SiteMesh3.0.0 读取xml配置的bug及修复
- Spark 1.4新特性概述
- Spark-Sql版本升级对应的新特性汇总
- 塔 第三条约定
- Android 面试题(一)
- 深度学习术语表与解析
- 常用日期计算SQL语句
- js 日期格式转换(date--> yyyy-MM-dd)
- Spark Release 2.*.* 新特性及修复的bug
- Android虚拟键-HOME、RECENT、BACK
- ambari自动部署
- 类的反射机制解释泛型的约束
- 判断字符串长度函数
- ContentProvider跨应用获取data/data/包名下的文件
- 算法导论第15章15.2-1
- Cryptdb学习笔记(2)——安装使用
- [CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter解决