在我的一个用例中,我尝试将传统的基于sql的仓库应用程序迁移到hive中。我也不是sql方面的Maven,也不是hiveql方面的Maven。不过,我在创建表和将csv导入配置单元表方面取得了相当大的成功。但是在hiveql中复制基于sql的分析查询时遇到了一个障碍。在其中一个分析算法中,我们需要创建多个变量并计算这些变量的总和,如下所示
var x = query1
var y = query2
var z = query3
var count = x + y + z
我正在努力在hiveql中完成这个任务。
事实上,所有这些变量组成一列,另外一列是total,它包含var1、var2和var3之和。有没有像sum这样的聚合函数,我可以用来在特定行的列var1、var2和var3中添加值,并将它们存储在该行的列total中?
有没有可能像下面这样做。在创建表temp本身的过程中,不可能告诉配置单元吗?
INSERT INTO TABLE TEMP VALUES (1, 2, 1+2);
如果以上是不可能的,我尝试了下面的解决办法
DROP TABLE T_TEMP;
DROP TABLE VARI;
CREATE TABLE VARI(value INT);
INSERT INTO TABLE VARI VALUES(1);
INSERT INTO TABLE VARI VALUES(2);
CREATE TABLE T_TEMP(var1 INT, var2 INT, total INT);
INSERT INTO TABLE T_TEMP
SELECT
1,
2,
sum(t.value)
from VARI as t;
我使用的是apachehue,我更喜欢在hue提供的hiveeditor中编写所有查询和语句,并在最后启动查询。
除了a)写入temp列,b)直接在insert中添加值之外,还有其他干净的方法可用吗。我更喜欢变量x,y,z,并且能够求和count=x+y+z。
1条答案
按热度按时间qf9go6mv1#