Hive Query,多个连接未执行

时间:2016-06-23 07:26:28

标签: join hive aggregate

我写了一个Hive查询来计算包含整数值(包括0)的表的多列上的33和66百分位数。

为了过滤异常值,我在计算百分位之前添加了过滤器> 0.

我有46列,每列计算33和66百分位,列上有> 0过滤器。

然后我将这些结果加入到一个包含33%和66%这些列的表中。

我的问题是查询没有执行。我尝试用2列执行,它工作正常,但不适用于这么多的连接。有人可以建议另一种方式。

数据如下所示:

    C1| C2| C3
 ---------------
    0 | 2 | 3
    1 | 0 | 2
    2 | 0 | 0
  

对于C1,数据将为[1,2];对于C2 - > [2];对于C3 - >并[3,2]

1 个答案:

答案 0 :(得分:0)

你不需要那样做

只使用hive的百分位udf

select percentile(C1,0.33),.....,percentile(C46,0.33) from table
UNION ALL
select percentile(C1,0.66),.....,percentile(C46,0.66) from table

这为您提供了一个包含46列的表,第一行表示每列的第33百分位,第二行表示每列的第66百分位

或者你可以做

select percentile(C1,0.33),.....,percentile(C46,0.33) , percentile(C1,0.66),.....,percentile(C46,0.66) from table