InfoQ|Spark 3.0开发近两年终于发布,流、Python、SQL重大更新详解( 二 )
在一个 3TB 的 TPC-DS 基准测试中 , 与没有 AQE 的 Spark 相比 , 有 AQE 的 Spark 将两个查询的性能提升了 1.5 倍以上 , 另外 37 个查询的性能提升了 1.1 倍以上 。
本文插图
当优化器无法在编译时识别可跳过的分区 , 可以使用“动态分区修剪” , 这在星型模型中很常见(星型模型由一个或多个事实表组成 , 这些事实表引用了任意数量的维度表) 。 在执行这种连接操作时 , 我们可以通过识别维度表过滤之后的分区来修剪从事实表读取的分区 。 在一个 TPC-DS 基准测试中 , 102 个查询中有 60 个查询获得 2 到 18 倍的速度提升 。
本文插图
ANSI SQL 兼容性对于将工作负载从其他 SQL 引擎迁移到 Spark SQL 来说至关重要 。 为了提升兼容性 , 新版本使用了 Proleptic Gregorian 日历 , 用户可以禁止使用 ANSI SQL 保留关键字作为标识符 。 此外 , 新版本针对数字类型的操作中引入了运行时溢出检查 , 并强制执行编译时类型检查 。 这些新的验证机制提高了数据质量 。
连接提示:尽管 Databricks 一直在改进编译器 , 但还是不能保证编译器可以在任何时候做出最佳决策——连接算法的选择基于统计信息和启发式 。 当编译器无法做出最佳选择时 , 用户可以使用连接提示来影响优化器 , 让它选择更好的执行计划 。 新版本加入了新的提示:SHUFFLE_MERGE、SHUFFLE_HASH 和 SHUFFLE_REPLICATE_NL 。
增强的 Python API:PySpark 和 Koalas Python 现在是 Spark 中使用最为广泛的编程语言 , 所以也是 Spark 3.0 的重点关注领域 。 Databricks 有 68%的 NoteBook 命令是用 Python 写的 。 PySpark 在 PyPI 上的月下载量超过 500 万 。
本文插图
很多 Python 开发人员在数据结构和数据分析方面使用了 Pandas API , 但仅限于单节点处理 。 Databricks 会继续开发 Koalas(一种基于 Apache Spark 的 Pandas API 实现) , 让数据科学家能够在分布式环境中更高效地处理大数据 。 借助 Koalas , 数据科学家们就不需要构建很多函数(例如绘图支持) , 在整个群集中获得更高的性能 。
经过一年多的开发 , Koalas 实现了将近 80% 的 Pandas API 。 Koalas 在 PyPI 上的月下载量已迅速增长到 85 万 , 并以每两周发布一次的节奏快速演进 。 除了 Koalas , 很多人仍在使用 PySpark API , 该 API 也越来越受欢迎 。
本文插图
Spark 3.0 对 PySpark API 做了一些增强:
- 带有类型提示的新 Pandas API:Spark 2.3 最初引入了 Pandas UDF , 并将 Pandas API 集成到 PySpark 应用程序中 。 但是 , 随着 UDF 类型的增多 , 现有接口就变得难以理解 。 新版本引入了一个新的 Pandas UDF 接口 , 利用 Python 的类型提示来解决 Pandas UDF 类型泛滥的问题 。 新接口变得更具 Python 风格和自我描述性 。
- 新的 Pandas UDF 类型和 Pandas 函数 API:新版本增加了两种新的 Pandas UDF 类型 , 即系列迭代器到系列迭代器和多个系列迭代器到系列迭代器 。 这对于数据预取和昂贵的初始化操作来说很有用 。 此外 , 新版本还添加了两个新的 Pandas 函数 API , 即 map 和 co-grouped map 。 更多详细信息请参见 这里 。
- 更好的错误处理:PySpark 的错误处理对于 Python 用户来说并不友好 。 新版本简化了 PySpark 异常 , 隐藏了不必要的 JVM 堆栈跟踪 , 并更具 Python 风格 。
推荐阅读
- InfoQ|Google早已看到未来多容器的挑战,利用Anthos能否实现多集群统一管理?
- 驱动中国|APUS亮相华为首届HMS Core. Sparkle创新沙龙,助力构建手游次世代
- 鸿蒙系统|鸿蒙OS3.0系统+麒麟1020华为P50,华为P40沦为弃机网友欢呼
- InfoQ|25岁网安CEO被判刑12年,技术隔离后,顶尖黑客被out了?
- 一只猫看科技|我的硬盘我做主 - ORICO/奥睿科USB3.0移动固态硬盘盒
- |我的硬盘我做主 - ORICO/奥睿科USB3.0移动固态硬盘盒
- 趣头条|斑马网络将携 AR-Driving 3.0 参加世界人工智能大会
- |“赣服通”3.0版暨APP正式上线运行
- 联盟网易邮箱诚信联盟3.0上线,产品经理手把手教学指南来了!
- InfoQ|细节中有上帝,论精简代码
