zoukankan      html  css  js  c++  java
  • 【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

        

  • 相关阅读:
    怎样打印日志
    log4j(一)
    idea没有subversion问题
    tomcat启动报异常(一)
    HashSet
    spring容器初始化bean和销毁bean之前进行一些操作的定义方法
    MyBatis中$和#的区别
    基本数据类型与引用数据类型
    Access restriction: The method 'CharacterEncoder.encode(byte[])' is not API...
    Object源码
  • 原文地址:https://www.cnblogs.com/snova/p/9195693.html
Copyright © 2011-2022 走看看