【Spark】Spark2.x版的新特性

一、API

    1. 出现新的上下文接口:SparkSession,统一了SQLContext和HiveContext,并且为SparkSession开发了新的流式调用的configuration API

    2. 统一了DataFrame和DataSet。DataFrame相当于DataSet[Row],以及DataSet的增强聚合API

    3. 增强了累加器accumulator的功能,支持Web UI,便捷的API,性能更高

二、SQL

    1. 支持SQL2003标准

    2. 支持ansi-sql 和hive ql的sql parser(SQL解析器)

    3. 支持DDL,支持子查询(in/not in 、 exists/ not exists)

三、性能

    1. 通过whole-stage-code generation(全流程代码生成)技术将SparkSQL和DataSet的性能提升了2~10倍。(在下一篇博文中会浅谈全流程代码生成技术)

    2. 通过vectorization(向量化)技术提升parquet文件的扫描吞吐量

    3. 提升orc文件的读写性能

    4. 提升catalyst查询优化器的性能

    5. 通过native实现方式提升窗口函数的性能

四、 Spark Streaming

    1. Structured Streaming在Spark2.0中是测试版,2.0之后是released版,它基于SparkSQL和Catalyst引擎构建,支持DataFrame风格的API进行流式计算。

    2. 基于DStream的API支持kafka0.10版本

五、Spark MLlib

    1.  基于DataFrame的API支持持久化保存、加载模型、Pipeline,支持更多的算法,支持向量和矩阵使用性能更高的序列化机制。

    2.  Spark R支持MLlib算法,包括线性回归、朴素贝叶斯等

    3. 未来Spark MLlib将主要基于DataSet API来实现,基于RDD和API将转为维护阶段

六、Other

    1. 支持csv文件

    2. 支持hive风格的bucket表

    3. 支持缓存和程序运行的堆外内存管理

    4. 完全移除了对akka的依赖

    5. 使用Scala2.11代替了Scala2.10,要求基于Scala2.11版本进行开发,而不是Scala2.10

    6. Mesos粗粒度模式下,支持启动多个Executor

    

 

posted @ 2018-06-14 19:33  Supernova-x  阅读(336)  评论(0编辑  收藏  举报