您现在的位置是:首页 > 文章详情

Apache Spark 3.0 发布

日期:2020-06-21点击:644

Databricks 上周发布了 Apache Spark 3.0,并将此作为新版 Databricks Runtime 7.0 的一部分。3.0.0 版本包含 3400 多个补丁,为 Python 和 SQL 功能带来了重大进展。

Spark 是用于大数据处理,数据科学,机器学习和数据分析等领域的统一引擎。

Spark 3.0 重要变化:

  • 与 Spark 2.4 相比,TPC-DS 的性能提升了2倍,主要通过自适应查询执行动态分区修剪和其他优化实现
  • 兼容 ANSI SQL
  • 针对 pandas API 的重大改进,包括 Python 类型提示和额外的 pandas UDF
  • 改进 Python 错误处理,简化 PySpark 异常提醒
  • 为结构化流(structured streaming)提供新 UI
  • 调用 R 语言自用户定义函数(User-Defined Function)的速度可提高 40 倍
  • 解决了 Jira 上 3400 多个 issue,这些 issue 的分布情况如下图所示

改进 Spark SQL 引擎

Spark SQL 是支持大多数 Spark 应用程序的引擎。在 Spark 3.0 中,46% 的补丁被应用于 SQL,提升了性能和 ANSI 兼容性。如下图所示,Spark 3.0 的性能大约是 Spark 2.4 的 2 倍

下面看看 Spark SQL 引擎中的主要新功能。

自适应查询执行(Adaptive Query Execution)

新的自适应查询执行(AQE) 框架通过在运行时生成更好的执行计划来提高性能并简化调整,即使由于缺少或使用不正确的数据统计信息和错误估计的成本而致使初始计划不理想时,也是如此。此版本引入了三个主要的自适应优化:动态合并 shuffle 分区可简化甚至避免调整 shuffle 分区的数量、动态切换连接策略部分避免了由于缺少统计信息或错误估计大小而导致执行次计划的情况,以及动态优化倾斜连接(optimizing skew joins )。

动态分区修剪 (Dynamic Partition Pruning)

当优化器无法在编译时识别其可以跳过的分区,将会应用“动态分区修剪功能。这在星型模式中很常见,星型模式由一个或多个事实表组成,这些事实表引用了任意数量的维度表。在执行这种联接操作中,我们可以通过识别维度表过滤之后的分区来修剪联接从事实表中读取的分区。在 TPC-DS 基准测试中,102 个查询中有 60 个查询获得 2 到 18 倍的显着加速。

Spark 3.0 中的其他更新

Spark 3.0 除了在 SQL,Python 和流技术方面包含部分关键改进,还提供了许多其他的新功能。详情查看发布说明,发现对 Spark 的所有其他改进,包括数据源、生态系统和监视等。

原文链接:https://www.oschina.net/news/116598/apache-spark-3-0-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章