小编gre*_*n_C的帖子

如何在 Hive 中的 GROUPING SETS 后重塑数据?

我想在许多不同的维度上聚合一列。我认为 GOUPING SETS 适合我的问题,但我无法弄清楚如何从 GROUPING SETS 转换/重塑结果表。

这是我使用 GROUPING SETS 的查询:

select date, dim1, dim2, dim3, sum(value) as sum_value
from table
grouping by date, dim1, dim2, dim3
grouping sets ((date, dim1), (date, dim2), (date, dim3))
Run Code Online (Sandbox Code Playgroud)

查询将生成如下表:

date        dim1    dim2    dim3    sum_value
2017-01-01  A       NULL    NULL    [value_A]
2017-01-01  B       NULL    NULL    [value_B]
2017-01-01  NULL    C       NULL    [value_C]
2017-01-01  NULL    D       NULL    [value_D]
2017-01-01  NULL    NULL    E       [value_E]
2017-01-01  NULL    NULL    F       [value_F]
Run Code Online (Sandbox Code Playgroud)

但我真正需要的是这样一张桌子:

date        dim     factor  sum_value
2017-01-01  dim1     A      [value_A] …
Run Code Online (Sandbox Code Playgroud)

hive rollup cube hiveql grouping-sets

2
推荐指数
1
解决办法
2633
查看次数

标签 统计

cube ×1

grouping-sets ×1

hive ×1

hiveql ×1

rollup ×1