如何在同一个配置单元 table 中使用派生列?
How to use derived columns in same hive table?
能否请您帮我查询一下。
假设有 table 名员工和 A 列、B 列和日期列。
我必须将数据从 table 员工加载到另一个 table emp 并应用以下转换
员工转型table
A 列的绝对值 - (emp 中的列名将为 ABS_A)
B列的绝对值-(emp中的列名将是ABS_B)
查找给定日期列的 sum(ABS_A)
4.Find 给定日期列的 sum(ABS_b)
- 查找
sum(ABS_A)/sum(ABS_B)
- 列名称将为平均值。
因此最终 table emp 将包含以下几列
1.A
2.B
3.ABS_A
4.ABS_B
5.Average
如何在 hive 中处理这样的派生列?
我尝试了以下查询,但现在可以了。谁能指导我。
insert overwrite into emp
select
A,
B,
ABS(A) as ABS_A,
ABS(B) as ABS_B,
sum(ABS_A) OVER PARTION BY DATE AS sum_OF_A,
sum(ABS_B) OVER PARTTION BY DATE AS sum_of_b,
avg(sum_of_A,sum_of_b) over partition by date as average
from employee
Hive 不支持在同一子查询级别使用派生列。使用子查询或函数代替列别名。
insert overwrite table emp
select A, B, ABS_A, ABS_B, sum_OF_A, sum_of_b, `date`, sum_OF_A/sum_of_b as average
from
(
select A, B, ABS(A) as ABS_A, ABS(B) as ABS_B, `date`,
sum(ABS(A)) OVER (PARTTION BY DATE) AS sum_OF_A,
sum(ABS(B)) OVER (PARTTION BY DATE) AS sum_of_b
from employee
)s;
能否请您帮我查询一下。
假设有 table 名员工和 A 列、B 列和日期列。
我必须将数据从 table 员工加载到另一个 table emp 并应用以下转换
员工转型table
A 列的绝对值 - (emp 中的列名将为 ABS_A)
B列的绝对值-(emp中的列名将是ABS_B)
查找给定日期列的
sum(ABS_A)
4.Find 给定日期列的 sum(ABS_b)
- 查找
sum(ABS_A)/sum(ABS_B)
- 列名称将为平均值。
因此最终 table emp 将包含以下几列
1.A
2.B
3.ABS_A
4.ABS_B
5.Average
如何在 hive 中处理这样的派生列?
我尝试了以下查询,但现在可以了。谁能指导我。
insert overwrite into emp
select
A,
B,
ABS(A) as ABS_A,
ABS(B) as ABS_B,
sum(ABS_A) OVER PARTION BY DATE AS sum_OF_A,
sum(ABS_B) OVER PARTTION BY DATE AS sum_of_b,
avg(sum_of_A,sum_of_b) over partition by date as average
from employee
Hive 不支持在同一子查询级别使用派生列。使用子查询或函数代替列别名。
insert overwrite table emp
select A, B, ABS_A, ABS_B, sum_OF_A, sum_of_b, `date`, sum_OF_A/sum_of_b as average
from
(
select A, B, ABS(A) as ABS_A, ABS(B) as ABS_B, `date`,
sum(ABS(A)) OVER (PARTTION BY DATE) AS sum_OF_A,
sum(ABS(B)) OVER (PARTTION BY DATE) AS sum_of_b
from employee
)s;