内容提要
Apache Spark 3.4 和 3.5 于 2023 年发布,为 PySpark 的性能、灵活性和易用性带来了显著提升。主要增强功能包括 Spark Connect、Arrow 优化的 Python UDFs、Python UDTFs、新的 SQL 功能、Python 任意状态处理、TorchDistributor 和测试 API。此外,还有英语 SDK 和其他改进。这些功能在 Databricks Runtime 13 和 14 中可用。
延伸解读
Spark Connect 带来的架构变化
Spark 3.4 引入的 Spark Connect 采用客户端-服务器解耦架构,允许任何位置的应用程序远程连接 Spark 集群。这种分离不仅提升了交互性,还改善了稳定性、可升级性、可调试性和可观测性。3.5 版本补全了 Scala 支持,并覆盖了 Structured Streaming、ML、PyTorch 和 Pandas API on Spark 等主要组件。对于需要远程开发或集成的团队,这意味着更灵活的部署选项。
性能与功能并重的 Python 增强
Arrow 优化的 Python UDFs 利用列式格式,在 32 GB 数据集上链式调用时比传统 pickle UDFs 快约 1.9 倍。同时,Python UDTFs 允许返回表格结果,可在 SQL 的 FROM 子句中使用,扩展了 PySpark 的表达能力。这些改进直接提升了数据转换和查询的性能与灵活性,尤其适合处理大规模数据的场景。
流处理与深度学习的工具升级
Python 任意状态处理使得 Structured Streaming 能够跨查询执行进行状态管理,为实时分析和机器学习用例解锁了更多可能性。TorchDistributor 则提供了 PyTorch 原生支持,简化了在 Spark 集群上分布式训练深度学习模型的流程。两者结合,让 PySpark 在实时和 AI 工作负载中更具竞争力。
开发体验与可访问性改进
新的测试 API 在 pyspark.testing 包中提供了相等性测试工具和详细错误信息,帮助开发者快速定位 DataFrame 模式和数据差异。英语 SDK 允许用户用自然语言输入命令并转换为 PySpark 或 Spark SQL 代码,降低了编程门槛。这些改进从测试和编写两个环节提升了开发效率,尤其对新手友好。
Q&A
2023年PySpark有哪些主要的新功能?
2023年PySpark的主要新功能包括Spark Connect、Arrow优化的Python UDFs、Python UDTFs、新的SQL功能、Python任意状态处理、TorchDistributor和测试API等。
Spark Connect的作用是什么?
Spark Connect引入了客户端-服务器架构,支持从任何应用程序远程连接Spark集群,提高了稳定性和可观察性。
Arrow优化的Python UDFs如何提高性能?
Arrow优化的Python UDFs通过利用Arrow列式格式,使得在同一集群中链式调用时执行速度比传统的Python UDFs快约1.9倍。
Python UDTFs有什么新特性?
Python UDTFs允许用户定义表函数,返回表格而非单一标量结果,可以在SQL查询的FROM子句中使用。
新的SQL功能包括哪些内容?
新的SQL功能包括GROUP BY ALL、ORDER BY ALL、INSERT BY NAME、PIVOT和MELT等,增强了PySpark与Spark SQL的兼容性。
TorchDistributor如何支持深度学习模型的训练?
TorchDistributor为PyTorch提供原生支持,简化了在Spark集群上进行深度学习模型的分布式训练。