美文网首页Spark
Spark从入门到精通52:Spark2.0特性介绍

Spark从入门到精通52:Spark2.0特性介绍

作者: 勇于自信 | 来源:发表于2020-05-17 19:16 被阅读0次
1.Spark SQL API

dataframe与dataset统一,dataframe只是dataset[Row]的类型别名

  • SparkSession:统一SQLContext和HiveContext,新的上下文入口
  • 为SparkSession开发的一种新的流式调用的configuration api
  • accumulator功能增强:便捷api、web ui支持、性能更高
  • dataset的增强聚合api
2.SQL
  • 支持sql 2003标准
  • 支持ansi-sql和hive ql的sql parser
  • 支持ddl命令
  • 支持子查询:in/not in、exists/not exists
3.Spark SQL new feature
  • 支持csv文件
  • 支持缓存和程序运行的堆外内存管理
  • 支持hive风格的bucket表
  • 支持近似概要统计,包括近似分位数、布隆过滤器、最小略图
4.Spark SQL 性能
  • 通过whole-stage code generation技术将spark sql和dataset的性能提升2~10倍
  • 通过vectorization技术提升parquet文件的扫描吞吐量
  • 提升orc文件的读写性能
  • 提升catalyst查询优化器的性能
  • 通过native实现方式提升窗口函数的性能
  • 对某些数据源进行自动文件合并
5.Spark MLlib
  • spark mllib未来将主要基于dataset api来实现,基于rdd的api转为维护阶段
  • 基于dataframe的api,支持持久化保存和加载模型和pipeline
  • 基于dataframe的api,支持更多算法,包括二分kmeans、高斯混合、maxabsscaler等
  • spark R支持mllib算法,包括线性回归、朴素贝叶斯、kmeans、多元回归等
  • pyspark支持更多mllib算法,包括LDA、高斯混合、泛化线性回顾等
  • 基于dataframe的api,向量和矩阵使用性能更高的序列化机制
6.Spark Streaming
  • 发布测试版的structured streaming
  • 基于spark sql和catalyst引擎构建
  • 支持使用dataframe风格的api进行流式计算操作
  • catalyst引擎能够对执行计划进行优化
  • 基于dstream的api支持kafka 0.10版本
7.依赖管理、打包和操作
  • 不再需要在生产环境部署时打包fat jar,可以使用provided风格
  • 完全移除了对akka的依赖
  • mesos粗粒度模式下,支持启动多个executor
  • 支持kryo 3.0版本
  • 使用scala 2.11替代了scala 2.10
8.移除的功能
  • bagel模块
  • 对hadoop 2.1以及之前版本的支持
  • 闭包序列化配置的支持
  • HTTPBroadcast支持
  • 基于TTL模式的元数据清理支持
  • 半私有的org.apache.spark.Logging的使用支持
  • SparkContext.metricsSystem API
  • 与tachyon的面向block的整合支持
  • spark 1.x中标识为过期的所有api
  • python dataframe中返回rdd的方法
  • 使用很少的streaming数据源支持:twitter、akka、MQTT、ZeroMQ
  • hash-based shuffle manager
  • standalone master的历史数据支持功能
  • dataframe不再是一个类,而是dataset[Row]的类型别名
9.变化的机制
  • 要求基于scala 2.11版本进行开发,而不是scala 2.10版本
  • SQL中的浮点类型,使用decimal类型来表示,而不是double类型
  • kryo版本升级到了3.0
  • java的flatMap和mapPartitions方法,从iterable类型转变为iterator类型
  • java的countByKey返回<K,Long>类型,而不是<K,Object>类型
  • 写parquet文件时,summary文件默认不会写了,需要开启参数来启用
  • spark mllib中,基于dataframe的api完全依赖于自己,不再依赖mllib包
10.过期的API
  • mesos的细粒度模式
  • java 7支持标识为过期,可能2.x未来版本会移除支持
  • python 2.6的支持

相关文章

网友评论

    本文标题:Spark从入门到精通52:Spark2.0特性介绍

    本文链接:https://www.haomeiwen.com/subject/ucnsohtx.html