Spark SQL与Spark Streaming的数据处理与应用
1. Spark SQL的性能优化与功能特性
1.1 Tungsten项目的性能提升
二进制编码对象相比其Java表示形式占用的内存要少得多。将它们存储在Long数组中(堆内模式)可显著减少垃圾回收,而分配这些数组(堆外模式)则完全消除了对垃圾回收的需求。Tungsten的二进制编码还包含一些技巧,使数据能够更有效地缓存在CPU的L1和L2缓存中。
此外,Tungsten项目还改进了洗牌性能。在Spark 1.5之前,只有基于排序和基于哈希的洗牌管理器可用。现在可以使用新的Tungsten洗牌管理器,它也是基于排序的,但使用了前面提到的二进制编码。可以通过将Spark的 spark.shuffle.manager 参数设置为 tungsten-sort 来启用它。未来的Spark版本将通过在Spark组件中进一步实现Tungsten的二进制编码来带来更多性能改进。
1.2 DataFrames的功能与特性
- SQL代码和DSL表达式转换 :DataFrames将SQL代码和DSL表达式转换为优化的低级RDD操作。
- 重要性与发展 :DataFrames已成为Spark中最重要的特性之一,使Spark SQL成为开发最活跃的Spark组件。
- 创建方式 :有三种创建DataFrames的方式,分别是转换现有RDD、运行SQL查询或加载外部数据
超级会员免费看
订阅专栏 解锁全文
2220

被折叠的 条评论
为什么被折叠?



