Apache Spark 3.x系列引入了许多新特性和改进,以下是一些亮点:
性能提升:Spark 3.0在TPC-DS基准测试中表现出约两倍于Spark 2.4的速度 。
自适应查询执行(Adaptive Query Execution, AQE):AQE允许Spark在运行时根据实际数据优化查询计划,包括动态合并shuffle分区、动态调整join策略和优化倾斜的join 。
动态分区裁剪(Dynamic Partition Pruning):在运行时基于推断信息进一步进行分区裁剪,特别是在星型模型中,可以显著提高查询性能 。
ANSI SQL兼容性:改进了对ANSI SQL的兼容性,包括使用Proleptic Gregorian日历和禁止使用ANSI SQL保留关键字作为标识符 。
Pandas API改进:对PySpark中的Pandas API进行了重大改进,包括类型提示、新的Pandas UDF类型,以及更符合Python风格的异常处理 。
Structured Streaming新UI:为Structured Streaming提供了新的UI,以更好地监控和调试流处理作业 。
R UDF性能提升:改进了调用R语言用户定义函数的性能,速度提升高达40倍 。
SparkR和Spark MLlib的改进:包括对SparkR的API改进和对MLlib机器学习库的更新 。
可扩展性增强:包括对Hydrogen项目的支持,以及对新硬件加速器的调度优化 。
监控和调试改进:引入了新的监控工具和改进的调试功能,如Spark UI的改进和对用户定义函数的内存分析 。
安全性和兼容性:增加了对Java 11的支持,以及对Hadoop 3的兼容性 。
对Python和R语言的支持:包括对Python 3.11的支持和对R 4.2.0的支持 。
对连接操作的优化:引入了Bloom过滤器来提升连接查询的性能,在某些情况下可以提高高达10倍的速度 。
对Pandas API的进一步扩展:增加了对datetime.timedelta和merge_asof的支持,提高了API的全面性 。
简化从传统数据仓库迁移:通过改进ANSI兼容性和新增的内置函数,简化了从传统数据仓库迁移到Spark的过程 。
开发效率和调试能力提升:通过更好的错误处理、自动完成、性能提升和profiling提高了开发效率 。
这些新特性和改进显示了Spark社区对性能、易用性、兼容性和可扩展性的持续关注和投资。
版权归原作者 大连赵哥 所有, 如有侵权,请联系我们删除。