gpt4 book ai didi

apache-spark - hive on spark - 为什么 'select *' 不生成 spark 应用程序/执行程序?

转载 作者:可可西里 更新时间:2023-11-01 15:20:01 24 4
gpt4 key购买 nike

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

这将启动一个 spark 应用程序/执行程序:

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

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

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

最佳答案

这 - 第二种情况 - 是由于不太知名的 "hive.fetch.task.conversion" 参数。

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

如果您选择 * 或非分区列,它将启动提取任务而不是 MR 作业 - 单线程。单线程并不总是一件好事。 count(*) 应该不言自明,您可能需要进行大量处理,第二种情况可以看作是一个游标。

您可以在 hive-site.xml 中将参数更改为“minimal”或“none”以避免此类处理。

发现得很好。

关于apache-spark - hive on spark - 为什么 'select *' 不生成 spark 应用程序/执行程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55418197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com