gpt4 book ai didi

sorting - Hive 分配方式与不分配方式

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

这听起来很基础,但这个问题困扰了我一段时间。

假设我有以下查询

SELECT s.ymd, s.symbol, s.price_close FROM stocks s
SORT BY s.symbol ASC;

在这种情况下,如果数据在符号列上分布良好,那么基于符号列进行分布是有意义的,这样所有 reducer 都能很好地共享数据;将查询更改为以下内容会提供更好的性能

SELECT s.ymd, s.symbol, s.price_close FROM stocks s
DISTRIBUTE BY s.symbol
SORT BY s.symbol ASC, s.ymd ASC;

如果我不指定 distribute by 子句会有什么影响?在第一个查询中选择的默认映射输出键列是什么,即它分布在什么列上?

最佳答案

我自己找到了答案。使用排序依据时,映射器的输出键不是应用排序依据的列。键可以是记录的文件偏移量。reducer 的输出按每个 reducer 排序,但按列值排序的相同内容可能出现在多个 reducer 的输出中。这意味着 reducer 的输出之间存在重叠。分布方式确保数据根据按列分布在 reducer 之间拆分,因此通过确保相同的列值进入相同的 reducer 以及相同的输出文件。

关于sorting - Hive 分配方式与不分配方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967078/

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