Apache Spark第一版发布时隔两年后, Databricks 公布了 基于上游分支 2.0.0-preview 的Apache Spark 2.0技术预览版。该预览版在稳定性和API方面均不适合用于生产环境,主要是为了在正式上市前收集来及社区的反馈。
此次发布的新版主要针对社区反馈进一步完善了各种功能,根据Spark的开发计划,主要改进分为两方面。
SQL是基于Apache Spark的应用程序最常用的接口之一。Spark 2.0可以支持全部的99个 TPC-DS查询 ,这些查询大部分都基于SQL:2003规范。这些改进有助于在对应用程序堆栈进行最少量重写的情况下将现有数据负载移植至Spark后端。
第二方面改进主要是编程API,同时在这个新版中也更重视机器学习。spark.mllib程序包已经被全新的 spark.ml程序包 所取代,后者更加侧重于基于 管线 的API,这项技术源自 DataFrames 。机器学习管线和模型 现已能够持久保存 ,Spark所支持的所有语言均支持这一特性。同时R已经可以支持K-Means、 Generalized Linear Models(GLM) 、 朴素贝叶斯 和Survival Regression。
借助新增的Datasets类,DataFrames和Datasets已实现了统一,可支持Scala和Java编程语言,同时也可充当结构流(Structured streaming)的抽象。不支持编译时类型安全(Compile time type safety)的语言暂时还无法做到这一点,此时只能使用DataFrames作为主要抽象。SQLContext和HiveContext已被统一的 SparkSession 所取代。新增的Accumulator API具有比基本类型更简单的类型层级,可支持对基本类型进行专门化(Specialization)。老的API已被弃用,但为了实现向后兼容性依然包含在新版中。
新发布的 结构化流API 主要可用于在不增加复杂性的前提下管理流数据集,借此程序员和现有机器学习算法将可以处理批量加载的数据集。在第二代Tungsten引擎的帮助下,性能也有所增强, 执行速度 最高可提升10倍。
该技术预览版已经发布至 DataBricks 。
查看英文原文: Apache Spark 2.0 Technical Preview