本文来自上周(2020-11-17至2020-11-19)举办的 Data + AI Summit 2020 (原 Spark+AI Summit),主题为《Spark SQL Beyond Official Documentation》的分享,作者 David Vrba,是 Socialbakers 的高级机器学习工程师。
实现高效的 Spark 应用程序并获得最大的性能为目标,通常需要官方文档之外的知识。理解 Spark 的内部流程和特性有助于根据内部优化设计查询,从而在执行期间实现高效率。在这次演讲中,我们将重点讨论 Spark SQL 的一些官方文档中没有很好描述的内部特性,重点在一些基本示例上解释这些特性,同时分享一些性能技巧。
下面是本次分享的超清视频:
本次分享主要有两大主题:
•Spark SQL 中的统计信息(Statistics)•以排序的方式将数据存储在文件中
Spark SQL 中的统计信息(Statistics)
统计信息这块的分享主要包括以下四个方面:
•我们怎么可以看到统计信息•统计信息是如何计算的•统计信息是怎么使用•有什么注意事项?
在 Spark 中,我们可以通过以上方法来查看表级别的统计信息、,输出的信息里面有个 Statistics 那行,那就是本次分享要提到的统计信息。
如果想查看列级别的统计信息,可以使用 DESCRIBE EXTENDED table_name column_name 进行查看。输出的信息可以看到这列的最大最小值、null 的数量、去重之后的值数量等信息。
如果我们使用的是 Apache Spark 3,我们还可以通过 explain(mode="cost&