与配置单元相比,spark sql read table非常慢

q1qsirdb  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(401)

我有一个配置单元表,它有大约2500列,当我用spark sql读取它时,如下所示:

val df = spark.sql("select * from dbName.tableName")

完成对配置单元表的读取大约需要3个小时,而我使用配置单元sql来读取这个表,它只需要几秒钟就可以完成。
谁知道为什么spark sql和hivesql的性能如此不同?谢谢!

vecaoik1

vecaoik11#

假设您使用的是hive而不是impala:hive ql query select*from表甚至不是一个仅Map的作业,而是一个边缘情况,即创建了一个“fetch task”,而不是一个mr task,它只是按原样转储数据而不做任何操作。我似乎还记得在过去我刚开始的时候也注意到了这一点。i、 一个边缘的情况下,它不需要计数,总和,过滤器等,可以这样做。
val数据框。。。另一方面,正在构建一个Dataframe,它需要通过洗牌、资源分配(通过yarn)等来完成。我们对环境一无所知,因为您没有说明spark standalone或yarn的调度策略。
在任何情况下,select-even-with-mr返回如上所述的第一组行的速度都相对较快,我怀疑它与宽列几乎没有关系,当然,除了更多的工作之外,但与您提出问题的方式略有不同。

相关问题