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

    文章

    7006

    浏览量

    88947
  • API
    API
    +关注

    关注

    2

    文章

    1499

    浏览量

    61969

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

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

收藏 人收藏

    评论

    相关推荐

    用Ollama轻松搞定Llama 3.2 Vision模型本地部署

    Ollama的安装。 一,Llama3.2 Vision简介 Llama 3.2 Vision是一个多模态大型语言模型(LLMs)的集合,它包括预训练和指令调整的图像推理生成模型,两种参数规模
    的头像 发表于 11-23 17:22 965次阅读
    用Ollama轻松搞定Llama <b class='flag-5'>3.2</b> Vision模型本地部署

    @视觉工程师丨15分钟上手《AIDI3.2脚本开发教程》视频,请查收!

    平台软件的实际应用,阿丘科技针对AIDI3.2版的功能特性,推出全新系列课——《AIDI3.2脚本开发教程》视频!该教程视频由阿丘科技算法总监吴雨培主讲,共分为上下
    的头像 发表于 11-09 01:06 236次阅读
    @视觉工程师丨15分钟上手《AIDI<b class='flag-5'>3.2</b>脚本开发教程》视频,请查收!

    USB 3.1和USB 3.2哪些区别

    USB由于标准众多,即便是之前已经确定的,随着新一代的推出,标准又出现了新的变化。本期我们将单独拿出USB 3.1和USB 3.2,它们外观基本相似,但是在参数对比上有些区别,具体不同一起往下看。
    的头像 发表于 09-09 14:59 1725次阅读
    USB 3.1和USB <b class='flag-5'>3.2</b><b class='flag-5'>有</b>哪些区别

    spark为什么比mapreduce快?

    spark为什么比mapreduce快? 首先澄清几个误区: 1:两者都是基于内存计算的,任何计算框架都肯定是基于内存的,所以网上说的spark是基于内存计算所以快,显然是错误的 2;DAG计算模型
    的头像 发表于 09-06 09:45 254次阅读

    spark运行的基本流程

    前言: 由于最近对spark的运行流程非常感兴趣,所以阅读了《Spark大数据处理:威廉希尔官方网站 、应用与性能优化》一书。通过这本书的学习,了解了spark的核心威廉希尔官方网站 、实际应用场景以及性能优化的方法。本文旨在
    的头像 发表于 07-02 10:31 401次阅读
    <b class='flag-5'>spark</b>运行的基本流程

    Spark基于DPU的Native引擎算子卸载方案

    1.背景介绍 Apache Spark(以下简称Spark)是一个开源的分布式计算框架,由UC Berkeley AMP Lab开发,可用于批处理、交互式查询(Spark SQL)、实
    的头像 发表于 06-28 17:12 561次阅读
    <b class='flag-5'>Spark</b>基于DPU的Native引擎算子卸载方案

    电感科普篇:电感的特性哪些?

    电感科普篇:电感的特性哪些?
    的头像 发表于 06-16 10:31 1119次阅读

    云服务器apache如何配置解析php文件?

    在云服务器上配置Apache以解析PHP文件通常需要以下步骤: 1、安装PHP:首先确保在服务器上安装了PHP。你可以使用包管理工具(如apt、yum等)来安装PHP。例如,在Ubuntu上,你可以
    的头像 发表于 04-22 17:27 1015次阅读

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

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

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

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

    RDMA威廉希尔官方网站 在Apache Spark中的应用

    背景介绍 在当今数据驱动的时代,Apache Spark已经成为了处理大规模数据集的首选框架。作为一个开源的分布式计算系统,Spark因其高效的大数据处理能力而在各行各业中广受欢迎。无论是金融服务
    的头像 发表于 03-25 18:13 1532次阅读
    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 1346次阅读
    基于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 559次阅读

    Apache Doris聚合函数源码解析

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

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

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