跳转到主要内容
公司博客上

介绍Apache火花3.0

现在可以在砖7.0运行时
分享这篇文章

我们兴奋地宣布,Apache火花TM3.0.0版本上可用砖作为我们的新砖7.0运行时的一部分。3.0.0版本包含超过3400个补丁和高潮来自开源社区的巨大贡献,带来重大进展在Python和SQL的能力和注重易用性对勘探和生产。这些行动反映了项目发展来满足更多的用例和更广泛的观众,与今年10周年纪念日的一个开源项目。

这里有最大的火花3.0中的新特性:

不需要任何代码更改主要采用这个版本的Apache火花。有关更多信息,请检查迁移向导

庆祝10年的引发和演化发展

火花一开始的加州大学伯克利分校的AMPlab研究实验室专注于数据密集型计算。AMPlab人员使用大型网际网路规模的公司在他们的数据和人工智能问题,但看到这些同样的问题也会面临的所有公司巨大的和不断增加的数据。团队开发了一个新的引擎来解决这些新兴的工作负载,同时使处理大数据的api更容易开发人员。

社区贡献很快就扩大火花到不同的地区,周围有新功能流、Python和SQL,现在这些模式占主导的一些用例火花。继续投资带来了火花到今天,作为事实上的数据处理引擎,数据科学、机器学习和数据分析的工作负载。Apache 3.0火花持续这种趋势显著改善支持SQL和Python今天和火花——两个最广泛使用的语言,以及优化性能和可操作性在火花。

改善火花的SQL引擎

火花的SQL引擎,支持大多数火花应用程序。例如,在砖上,我们发现超过90%火花的API调用使用DataFrame,数据集和SQL API以及其他库优化的SQL优化器。这意味着即使Python和Scala开发人员的工作通过火花的SQL引擎。在3.0版本,46%所有的补丁了SQL,改善性能和ANSI兼容性。如下文所述,火花3.0执行大约2 x比火花总共2.4运行时。接下来,我们解释四个新特性引发的SQL引擎。

自适应查询执行(AQE)框架提高了性能和简化了调优在运行时通过生成更好的执行计划,即使最初计划是理想由于缺席/不准确的数据统计和错估成本。因为火花的存储和计算分离,数据的到来都是不可预知的。所有这些原因,运行时自适应性变得更比传统系统引发的关键。这个版本引入了三个主要的自适应优化:

  • 动态合并调整分区简化甚至避免优化调整分区的数量。用户可以设置一个相对大量的洗牌分区开始,然后AQE可以在运行时相邻小分区合并成更大的。
  • 动态切换连接策略部分避免执行不佳的计划由于缺少统计数据和/或misestimation大小。这种自适应优化可以自动转换分类合并加入broadcast-hash加入在运行时,进一步简化优化和提高性能。
  • 动态优化倾斜连接是另一个关键性能增强,因为倾斜连接可能会导致一个极端不平衡的工作和严重降低性能。AQE检测后的任何斜洗牌文件统计信息,它可以斜分区分割成较小的和加入他们相应的分区从另一侧。这种优化可以并行化倾斜处理,实现更好的整体性能。

基于3结核病TPC-DS基准,而没有AQE,火花AQE能产生超过1.5 x的性能加速两个查询,超过1.1倍加速37查询。

TPC-DS 3结核病铺有与没有自适应查询执行。
TPC-DS 1 tb铺有与没有动态分区修剪

动态分区修剪应用时,优化器在编译时无法确定它可以跳过的分区。这个明星模式中并不少见,包含一个或多个事实表引用任意数量的维度表。在这样的连接操作,我们可以删除分区连接读取从事实表,通过识别那些由于过滤维度表的分区。TPC-DS基准,60 102查询之间表现出显著的加速2 x和18 x。

ANSI SQL合规从其他SQL工作负载迁移的关键引擎引发的SQL。改善遵从性,这个版本切换到预期的公历,也允许用户禁止使用ANSI SQL作为标识符的保留关键字。此外,我们已经介绍了运行时溢出检查在数字操作和编译时类型执行数据插入一个表与一个预定义的模式。这些新的验证改进数据质量。

加入提示:当我们继续改善编译器时,不能保证编译器可以使每个情况-加入算法选择的最优决策是基于统计和启发式。当编译器无法做出最好的选择,用户可以使用加入提示来影响优化器选择一个更好的计划。这个版本扩展了现有加入提示通过添加新的提示:SHUFFLE_MERGE, SHUFFLE_HASH SHUFFLE_REPLICATE_NL。

提高Python api: PySpark和考拉
Python是现在使用最广泛的语言在火花和,因此,是引发3.0开发的重点区域。68%砖上的笔记本命令是在Python中。PySpark, Apache火花Python API,还多500万年指数月度PyPI上下载,Python包。

许多Python开发人员使用熊猫API的数据结构和数据分析,但它仅限于单节点处理。我们还继续发展考拉,熊猫API的实现Apache火花,使数据科学家更有效率在处理大数据在分布式环境中。考拉消除了需要建立许多功能(例如,策划支持)在PySpark,实现高效的性能在一个集群。

经过一年多的发展,考拉API覆盖熊猫接近80%。考拉的月度PyPI下载已经迅速成长为850000年,考拉是两周一次的发布节奏快速发展的。尽管考拉可能从单节点熊猫代码迁移的最简单方法,许多人仍然使用PySpark api,它也越来越受欢迎。

每周PyPI下载PySpark和考拉

火花PySpark api 3.0带来了几个增强:

  • 新的熊猫api类型提示:熊猫udf最初引发2.3中引入PySpark扩展用户定义函数和熊猫api集成到PySpark应用程序。然而,现有的接口添加更多的UDF类型时很难理解。这个版本引入了一个新的熊猫UDF接口,利用Python类型提示地址熊猫UDF的扩散类型。新界面变得更加神谕的和自描述的。
  • 新类型的熊猫熊猫udf和api函数:这个版本添加了两个新的熊猫UDF类型,迭代器系列的迭代器系列迭代器的多个系列的迭代器系列。它是有用的数据预取和昂贵的初始化。另外,两个新的pandas-function api,地图co-grouped地图是补充道。更多的细节是可用的博客
  • 更好的错误处理:对Python PySpark错误处理并不总是友好的用户。这个版本简化PySpark例外,隐藏不必要的JVM堆栈跟踪,并使他们更预言的。

提高Python支持和可用性火花仍然是我们的一个最高优先级。

氢、流和可扩展性

火花3.0,我们已经完成了项目关键部件以及氢引入新功能来提高流媒体和可扩展性。

  • Accelerator-aware调度:项目氢是一个主要的火花计划更好地统一引发深度学习和数据处理。gpu和其他加速器已广泛用于促进深度学习的工作负载。使火花利用硬件加速器在目标平台上,这个版本增强了现有的集群管理器accelerator-aware调度器。bob体育客户端下载用户可以指定加速器通过配置的帮助下发现脚本。用户可以调用新的抽样api来利用这些加速器。
  • 新的UI结构化流:结构化流最初是在火花2.0中引入的。砖在使用同比增长4倍后,超过5万亿条记录每天处理与结构化流砖。此版本增加了一个专用的新的火花用户界面这些流工作的检查。这个新的UI提供两套统计:1)流聚合信息查询工作完成,2)详细统计数据流查询信息。

趋势记录的数量由结构化处理流数据砖

  • 观察指标:持续监控数据更改质量管理是一个非常理想的特性数据管道。这个版本引入了监控批处理和流媒体的应用程序。可观测的指标是任意的聚合函数,可以定义一个查询(DataFrame)。一旦执行DataFrame达到完成点(例如,完成批量查询或到流媒体时代),命名事件包含的指标数据处理自上次完成点。
  • 新的目录插件API:现有的数据源访问和操作元数据API缺乏能力的外部数据源。这个版本丰富的数据源V2 API和引入了新的目录插件API。外部数据源,实现目录插件API和数据源V2 API,用户可以直接操作外部表的数据和元数据通过多部分标识符,在相应的外部目录登记。

3.0其他更新的火花

火花3.0是一个主要版本的社区,与3400多名Jira票解决。贡献的结果从超过440个参与者,包括个人和公司,如砖,谷歌、微软、英特尔、IBM、阿里巴巴、Facebook、英伟达,Netflix, Adobe和许多更多。我们已经强调了一些关键的SQL, Python和流媒体的进步引发对于这个博客,但是还有许多其他的功能在这个3.0里程碑不在这里。BOB低频彩学习更多的发布说明火花和发现所有其他的改进,包括数据源、生态系统、监控和更多。

主要功能在3.0和7.0砖运行时的火花。

今天开始使用火花3.0

如果你想尝试Apache 3.0火花砖7.0运行时,注册一个免费试用帐户在几分钟内开始。使用火花3.0非常简单,只需选择版本“7.0”时启动集群。

3.0使用火花砖7.0运行时很简单,从下拉菜单中选择它当启动集群。

BOB低频彩了解更多关于特性和释放的细节:

免费试着砖

相关的帖子

看到所有公司博客上的帖子