蜂巢火花-为什么不'select *'产生火花应用程序/执行程序?

时间:2019-03-29 13:12:13

标签: apache-spark hadoop hive mapreduce hiveql

我在Spark(执行引擎)上设置了Hive(v2.3.4)。

这将启动Spark应用/执行程序:

Point

为什么不启动Spark应用/执行程序:

select count(*) from s.t where h_code = 'KGD78' and h_no = '265'

1 个答案:

答案 0 :(得分:1)

这是第二种情况,这是由于不太知名的“ hive.fetch.task.conversion” 参数引起的。

根据设置方式,即使配置了过滤器(即where子句),Hive仍可以启动单个“获取任务” ,而不是Map Reduce作业。

如果选择*或未分区的列,它将启动获取任务,而不是MR-job-单线程。单线程并不总是一件好事。 count(*)应该说明一切,您可能需要进行大量处理,第二种情况就像光标一样。

您可以在hive-site.xml中将参数更改为“最小”或“无”,以消除这种类型的处理。

发现得很好