【发布时间】:2015-09-07 03:28:26
【问题描述】:
这听起来很简单,但这个问题困扰了我一段时间。
假设我有以下查询
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子句会有什么影响?在第一个查询中选择的默认映射输出键列是什么,即它分布在什么列上?
【问题讨论】:
标签: sorting hadoop hive distribute