Hive 在配置单元中缩放介于0和1之间的列值
我有一个名为table1的表,其中包含以下列:-Hive 在配置单元中缩放介于0和1之间的列值,hive,hiveql,Hive,Hiveql,我有一个名为table1的表,其中包含以下列:- ID count1 count2 A 3 5 B 1 7 C 2 9 我需要列-count1和count2的值介于0和1之间。我需要在配置单元中根据数据大小执行此操作。最后一个表应该如下所示:- ID count1 count2 A 1 0 B 0 0.5 C 0.5 1 我编写以下查询:- select a.ID, (((a.count1-
ID count1 count2
A 3 5
B 1 7
C 2 9
我需要列-count1和count2的值介于0和1之间。我需要在配置单元中根据数据大小执行此操作。最后一个表应该如下所示:-
ID count1 count2
A 1 0
B 0 0.5
C 0.5 1
我编写以下查询:-
select a.ID,
(((a.count1-min(a.count1))/(max(a.count1)-min(a.count1))),
(((a.count2-min(a.count2))/(max(a.count2)-min(a.count2)))
from table1 as a;
此查询提供了一个关于列ID的分组错误
请协助在hiveql中执行此操作。这可以通过使用
min
和max
窗口功能来完成。空的over()
子句计算列中所有值的聚合。由于窗口函数不是聚合函数,因此不需要按分组
select ID,
(count1-min(count1) over())/(max(count1) over()-min(count1) over()),
(count2-min(count2) over())/(max(count2) over() -min(count2) over())
from table1