您的位置:首页 > 数据库

Spark的这些事<四>——SparkSQL功能测试结果

2016-12-14 16:43 399 查看
一、Spark与Hive的差异

(1)、in 不支持子查询(2.0支持https://issues.apache.org/jira/browse/SPARK-4226

eg: select * from tb_test1 where serv_number in (select serv_number from tb_test1 where serv_number=138);

(2)、minus 不支持

(3)、intersect 不支持

二、 性能效率

注:

spark执行时均采用单核、1G内存执行脚本(如提高执行内存 执行效率会更快)

本次测试的事实表数据量为千万级别



综上,直接count(*)时,sparksql执行速度比hive高5倍,如果对执行内存扩大,对spark相关参数调优,则会更快。由于spark把计算放到内存中,所以会比MR更快,当然当数据量大于执行节点内存时,spark也会在在HDFS上直接计算,这是速度会有所下降,保证节点数以及各节点内存,才能更好的发挥spark的计算优势。

三、 结果比对

根据上面我们实践的整合Spark VS Hive,sparksql执行速度比hive高5倍之多,如果对执行内存扩大,对spark相关参数调优,则会更快。由于spark把计算放到内存中,所以会比MR更快,当然当数据量大于执行节点内存时,spark也会在在HDFS上直接计算,这是速度会有所下降,保证节点数以及各节点内存充足,才能更好的发挥spark的计算优势。

在执行复杂统计分析时,完全可以使用Spark SQL来替代Hive,至少会提高几倍的速度,对于一些基于Hive统计应用,随着应用的增多,可能每天需要更多的离线运算,有些报表对于与执行效率也需要提高。除了对Hive查询语句进行优化之外,应该说优化空间不大,所以这个时候可以考虑使用Spark平台来实现统计分析,而且,Spark集群可以线性扩展,对于一些调优也更容易一些。另外,Spark的发展超级迅猛,新版本频繁发布,而且在后期的版本中还会在性能方面进行大幅改进。

Spark的这些事系列文章:

Spark的这些事<一>——Windows下spark开发环境搭建

Spark的这些事<二>——几个概念

Spark的这些事<三>——spark常用的Transformations 和Actions

Spark的这些事<四>——SparkSQL功能测试结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spark 测试