Apache Spark 2.2简介
今天我们很高兴地宣布Apache Spark 2.2.0作为Databricks运行时3.0的一部分。
该版本标志着结构化流媒体的一个重要里程碑,将其标记为生产就绪,并删除了实验标签。在这个版本中,我们还支持流中的任意有状态操作,Apache Kafka 0.10支持使用流和批处理api进行读写。除了将新功能扩展到SparkR、Python、MLlib和GraphX之外,该版本还专注于可用性、稳定性和改进,解决了1100多个票据。
这篇博文讨论了一些高层的变化,改进和错误修复:
- 准备好制作的结构化流
- 扩展SQL功能
- R中新的分布式机器学习算法
- MLlib和GraphX中的附加算法
结构化流
在Spark 2.0中引入,结构化流是用于构建的高级API连续应用程序。我们的目标是使构建端到端流应用程序变得更容易,这些应用程序以一致和容错的方式与存储、服务系统和批处理作业集成。
2中的第三次发布。x行,Spark 2.2宣布结构化流为生产就绪,意思是去掉实验标签,以及其他高级更改:
- 卡夫卡源汇:支持在Apache Kafka中流式或批处理读取和写入数据
- 卡夫卡的改进:用于低延迟Kafka到Kafka流的缓存生产者
- 其他有状态api:支持使用复杂的有状态处理和超时(平)MapGroupsWithState
- Run Once触发器:允许只触发一次执行,从而降低集群的成本
在数据库,我们笃信狗粮。使用Spark 2.2的候选版本,我们已经移植了一些我们的内部数据管道以及与我们的一些客户合作,以移植他们的使用结构化流的生产管道。
SQL和核心api
自Spark 2.0发布以来,Spark现在是大数据领域功能最丰富、符合标准的SQL查询引擎之一。它可以连接到各种数据源并执行SQL-2003特性集,例如分析函数和子查询。Spark 2.2增加了许多SQL功能:
- API的更新:统一数据源和hive serde表的CREATE TABLE语法,并为SQL查询添加广播提示,如broadcast、BROADCASTJOIN和MAPJOIN
- 整体性能及稳定性:
- 基于成本的优化器基数估计用于过滤、连接、聚合、项目和限制/抽样操作符以及基于成本的连接重新排序
- 使用星型模式启发式的TPC-DS性能改进
- CSV和JSON的文件列表/IO改进
- hiveudaffuncfunction的部分聚合支持
- 介绍一个基于JVM对象的聚合运算符
- 其他显著变化:
- 支持多行JSON和CSV文件解析
- 对分区表执行Analyze Table命令
- 在完成对Hive-serde表的插入/CTAS后,删除暂存目录和数据文件
MLlib、SparkR和Python
Spark 2.2的最后一个主要变化集中在高级分析和Python。现在你可以安装来自PyPI的PySpark使用PIP安装包。为了提高高级分析,MLlib和GraphX添加了一些新的算法:
- 局部敏感哈希
- 多类逻辑回归
- 个性化网页排名
Spark 2.2还在SparkR中增加了对以下分布式算法的支持:
- 肌萎缩性侧索硬化症
- 等张回归
- 多层感知器分类器
- 随机森林
- 高斯混合模型
- 乔治。
- 多类逻辑回归
- 梯度增强树
- 结构化流API的R
- 列函数to_json,from_jsonR
- R中的多列近似分位数
随着这些算法的加入,SparkR已经成为R上最全面的分布式机器学习库。
虽然这篇博客文章只介绍了这个版本的一些主要功能,但您可以阅读官方版本发布说明查看完整的更改列表。
如果你想尝试这些新特性,你可以在Databricks Runtime 3.0中使用Spark 2.2。注册一个免费试用账号。