0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Apache Spark 3.2有哪些新特性

数据分析与开发 来源:过往记忆大数据 作者:过往记忆大数据 2021-11-17 14:09 次阅读

经过七轮投票, Apache Spark 3.2 终于正式发布了。Apache Spark 3.2 已经是 Databricks Runtime 10.0 的一部分,感兴趣的同学可以去试用一下。按照惯例,这个版本应该不是稳定版,所以建议大家不要在生产环境中使用。

Spark 的每月 Maven 下载数量迅速增长到 2000 万,与去年同期相比,Spark 的月下载量翻了一番。Spark 已成为在单节点机器或集群上执行数据工程、数据科学和机器学习的最广泛使用的引擎。

Spark 3.2 继续以使 Spark 更加统一、简单、快速和可扩展为目标,通过以下特性扩展其范围:

•在 Apache Spark 上引入 panda API,统一小数据API和大数据API。

•完成 ANSI SQL 兼容模式,简化 SQL 工作负载的迁移。

•自适应查询执行产品化完成,以在运行时加速 Spark SQL。

•引入 RocksDB 状态存储以使状态处理更具可扩展性。

在这篇博文中,我们总结了一些更高层次的特性和改进。请关注即将发布的深入研究这些特性的文章。有关所有 Spark 组件的主要功能和已解决的 JIRA 的完整列表,请参阅 Apache Spark 3.2.0 release notes

统一小数据 API 和大数据 API

Python 是 Spark 上使用最广泛的语言。为了使 Spark 更具 Python 风格,Pandas API 被引入到 Spark,作为 Project Zen 的一部分(另请参阅 Data + AI Summit 2021 会议中的 Project Zen: Making Data Science Easier in PySpark 议题)。现在 pandas 的现有用户可以通过一行更改来扩展他们的 pandas 应用程序。如下图所示,得益于 Spark 引擎中的复杂优化,单节点机器 [左] 和多节点 Spark 集群 [右] 的性能都可以得到极大提升。

同时,Python 用户还可以无缝利用 Spark 提供的统一分析功能,包括通过 SQL 查询数据、流处理和可扩展机器学习 (ML)。新的 Pandas API 还提供了由 plotly 后端支持的交互式数据可视化。

简化 SQL 迁移

添加了更多 ANSI SQL 功能(例如,支持 lateral join)。经过一年多的发展,本次发布的 ANSI SQL 兼容处于 GA 状态。为了避免大量破坏行为的更改,默认情况下 spark.sql.ansi.enabled 依然是未启用的。ANSI 模式包括以下主要行为更改:

•当 SQL 运算符/函数的输入无效时,会抛出运行时错误,而不是返回为 null (SPARK-33275)。例如,算术运算中的整数值溢出错误,或将字符串转换为数字/时间戳类型时的解析错误。

•标准化类型强制语法规则 (SPARK-34246)。新规则定义了给定数据类型的值是否可以基于数据类型优先级列表隐式提升为另一种数据类型,这比默认的非 ANSI 模式更直接。

•新的显式转换语法规则 (SPARK-33354)。当 Spark 查询包含非法类型转换(例如,日期/时间戳类型转换为数字类型)时,会抛出编译时错误,告知用户转换无效。

此版本还包括一些尚未完全完成的新计划。例如,标准化 Spark 中的异常消息(SPARK-33539);引入 ANSI interval type (SPARK-27790) 并提高相关子查询的覆盖范围 (SPARK-35553)。

在运行时加速 Spark SQL

此版本 (SPARK-33679) 中默认启用自适应查询执行 (AQE)。为了提高性能,AQE 可以根据在运行时收集的准确统计信息重新优化查询执行计划。在大数据中,维护和预先收集统计数据的成本很高。无论优化器有多先进,缺乏准确的统计信息通常会导致计划效率低下。在这个版本中,AQE 与所有现有的查询优化技术(例如,动态分区修剪,Dynamic Partition Pruning)完全兼容,以重新优化 JOIN 策略、倾斜 JOIN 和 shuffle分区合并。

小数据和大数据都应该在统一的数据分析系统中以高效的方式处理。短查询性能也变得至关重要。当处理的数据量相当小时,在复杂查询中编译 Spark 查询的开销非常大。为了进一步降低查询编译延迟,Spark 3.2.0删除了分析器/优化器规则(SPARK-35042、SPARK-35103) 中不必要的查询计划遍历,并加快了新查询计划的构建 (SPARK-34989)。因此,与 Spark 3.1.2 相比,TPC-DS 查询的编译时间减少了 61%。

更可扩展的状态处理流

Structured Streaming 中状态存储的默认实现是不可伸缩的,因为可以维护的状态数量受执行器堆大小的限制。在此版本中,Databricks 为 Spark 社区基于 RocksDB 的状态存储实现做出了贡献,该实现已在 Databricks 生产中使用了四年多。这种状态存储可以通过对键进行排序来避免完全扫描,并在不依赖于执行器堆大小的情况下从磁盘提供数据。

此外,状态存储 API 还包含用于前缀匹配扫描 (SPARK-35861) 的 API,以有效支持基于事件时间的会话 (SPARK-10816),允许用户在 eventTime 上对会话窗口进行聚合。更多细节,请阅读 Native support of session window in Apache Spark’s Structured Streaming 博文。

Spark 3.2 的其他更新

除了上面这些新功能外,这个版本还关注可用性、稳定性和功能加强,解决了大约 1700 个 JIRA tickets。这是 200 多名贡献者贡献的结果,包括个人和公司,如 Databricks,苹果,Linkedin, Facebook,微软,英特尔,阿里巴巴,英伟达,Netflix, Adobe 等。我们在这篇博文中重点介绍了 Spark 中的许多关键 SQL、Python 和流数据改进,但 3.2 里程碑中还有许多其他功能,包括代码生成覆盖率的改进和连接器的增强,您可以在版本中了解更多信息。

开始使用 Spark 3.2

如果您想在 Databricks Runtime 10.0 中试用 Apache Spark 3.2,请注册 Databricks 社区版或 Databricks 试用版,这两者都是免费的,并在几分钟内就可以使用。如果你想自己搭建的话,可以到 这里 下载。

本文翻译自 《Introducing Apache Spark 3.2》:https://databricks.com/blog/2021/10/19/introducing-apache-spark-3-2.html

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6509

    浏览量

    87561
  • API
    API
    +关注

    关注

    2

    文章

    1379

    浏览量

    60978

原文标题:Apache Spark 3.2 正式发布,新特性详解

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何利用DPU加速Spark大数据处理? | 总结篇

    SSD速度通过NVMe接口得到了大幅提升,并且网络传输速率也进入了新的高度,但CPU主频发展并未保持同等步调,3GHz左右的核心频率已成为常态。 在当前背景下Apache Spark等大数据处理工具中,尽管存储和网络性能的提升极大地减少了数据读取和传输的时间消耗,但
    的头像 发表于 04-02 13:45 410次阅读
    如何利用DPU加速<b class='flag-5'>Spark</b>大数据处理? | 总结篇

    Spark基于DPU Snappy压缩算法的异构加速方案

    一、总体介绍 1.1 背景介绍 Apache Spark是专为大规模数据计算而设计的快速通用的计算引擎,是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些不同之处
    的头像 发表于 03-26 17:06 199次阅读
    <b class='flag-5'>Spark</b>基于DPU Snappy压缩算法的异构加速方案

    RDMA技术在Apache Spark中的应用

    背景介绍 在当今数据驱动的时代,Apache Spark已经成为了处理大规模数据集的首选框架。作为一个开源的分布式计算系统,Spark因其高效的大数据处理能力而在各行各业中广受欢迎。无论是金融服务
    的头像 发表于 03-25 18:13 1054次阅读
    RDMA技术在<b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b>中的应用

    基于DPU和HADOS-RACE加速Spark 3.x

    背景简介 Apache Spark(下文简称Spark)是一种开源集群计算引擎,支持批/流计算、SQL分析、机器学习、图计算等计算范式,以其强大的容错能力、可扩展性、函数式API、多语言支持(SQL
    的头像 发表于 03-25 18:12 918次阅读
    基于DPU和HADOS-RACE加速<b class='flag-5'>Spark</b> 3.x

    Apache服务器和Nginx服务器

    Apache和Nginx都是常见的开源Web服务器软件,它们用于处理HTTP请求并提供网站和应用程序的服务。下面是对Apache和Nginx的一些基本特点的比较: 一、Apache HTTP
    的头像 发表于 01-22 16:48 204次阅读

    Apache Doris聚合函数源码解析

    笔者最近由于工作需要开始调研 Apache Doris,通过阅读聚合函数代码切入 Apache Doris 内核,同时也秉承着开源的精神,开发了 array_agg 函数并贡献给社区。笔者通过这篇文章记录下对源码的一些理解,同时也方便后面的新人更快速地上手源码开发。
    的头像 发表于 01-16 09:52 471次阅读
    <b class='flag-5'>Apache</b> Doris聚合函数源码解析

    什么是Apache日志?Apache日志分析工具介绍

    Apache Web 服务器在企业中广泛用于托管其网站和 Web 应用程序,Apache 服务器生成的原始日志提供有关 Apache 服务器托管的网站如何处理用户请求以及访问您的网站时经常遇到的错误的重要信息。
    的头像 发表于 01-04 10:09 225次阅读

    Apache Pulsar的特性

    Apache Pulsar Apache Pulsar是Apache软件基金会顶级项目,是下一代 云原生分布式消息流 平台。 Pulsar 作为下一代云原生分布式消息流平台,支持 多租户、持久化存储
    的头像 发表于 09-25 11:45 409次阅读
    <b class='flag-5'>Apache</b> Pulsar的<b class='flag-5'>特性</b>

    NVIDIA 携手腾讯开发和优化 Spark UCX 实现性能跃升

    腾讯网络平台部与数据平台部,联合 NVIDIA 合作开发和优化 Spark UCX,最终实现 Spark Shuffle 稳定加速 15% - 20%,平均降低现网 Spark 任务
    的头像 发表于 08-25 20:50 416次阅读
    NVIDIA 携手腾讯开发和优化 <b class='flag-5'>Spark</b> UCX 实现性能跃升

    NVIDIA TensorRT与Apache Beam SDK的集成

    使用 NVIDIA TensorRT 在 Apache Beam 中简化和加速机器学习预测
    的头像 发表于 07-05 16:30 270次阅读

    Spark ML算法提供GPU加速度

    新的 GPU 库降低了 Apache Spark ML 的计算成本
    的头像 发表于 07-05 16:30 568次阅读
    为<b class='flag-5'>Spark</b> ML算法提供GPU加速度

    气候3.2开源分享

    电子发烧友网站提供《气候3.2开源分享.zip》资料免费下载
    发表于 06-12 10:23 0次下载
    气候<b class='flag-5'>3.2</b>开源分享

    OpenHarmony 3.2 Release新特性解读之驱动HCS

    “OpenHarmony”)开源社区,在今年4月正式发布了OpenHarmony 3.2 Release版本,标准系统能力进一步完善,提升了系统的整体性能、稳定性和安全性。此次版本对于驱动也提供了一些
    的头像 发表于 05-30 21:45 483次阅读

    一加6T适配OpenHarmony 3.2

    OpenHarmony-3.2-Release 已发布,并且已经有好一段时间,本次释放一加 6/6T 相关刷机包,主要升级为 OpenHarmony-3.2-Release 正式版并初步支持部分外设功能(如音频播放和蓝牙),及更新内核。
    的头像 发表于 05-30 15:39 596次阅读
    一加6T适配OpenHarmony <b class='flag-5'>3.2</b>

    恒讯科技分析:apache服务器和tomcat服务器有何区别?

    apache服务器和tomcat服务器有何区别?apache服务器的目的是简单地为基于Web的客户端提供静态文件,例如文本、HTML、图像、音频和视频文件。相比之下,apache服务器提供的内容会根据客户端是谁、客户端是否已登录
    的头像 发表于 05-17 17:35 558次阅读