我有一个大约2500列的蜂巢表,当我通过Spark SQL读取它时:
val df = spark.sql("select * from dbName.tableName")
完成阅读蜂巢表大约需要3个小时,而我使用Hive SQL读取该表,只有几秒钟的时间。
。有人知道为什么Spark SQL和Hive SQL之间的性能如此之不同?多谢!
假设您正在使用Hive而不是Impala:Hive Ql Ql Query 从表格 select * select *甚至不是地图作业,而是一个边缘案例,即"获取任务"是创建的,而不是MR任务,该任务只是在不做任何事情的情况下丢弃数据。我似乎记得我刚开始时也注意到这一点。IE。边缘情况,它不需要计算,总和,过滤等,并且可以这样做。
val df ...另一方面是构建数据框,如果Spark Standalone或Yarn制定时间表政策。
在任何情况下,即使使用MR都相对较快,可以按照上述返回第一组行,我怀疑这与宽列无关,但当然还有更多的工作,但与The的推力略有不同您提出问题的方式。