是否有办法在Hive中查询一些指标,并验证它们是否满足连接两个表后的一些公式?



我在Hive中得到了两个表:

a.hive:

| |摆脱cid | | | b c |

a.samples

| |摆脱cid | | | b c |

两个表具有相同的字段名。现在我想取出这两个表中rid和cid相同的部分,然后验证a、b、c三个字段的值差是否小于0.00001(在查询结果中输出true/false),输出这三个字段的值差小于0.00001的百分比。我目前为第一部分编写了代码,但它抛出了一个错误,我不知道如何输出百分比。我该怎么办?

select s.rid, 
s.cid
from a.samples s
join a.hive h
if(s.a - h.a < 0.00001, 'True', 'False') as result_a,
if(s.b - h.b < 0.00001, 'True', 'False') as result_b,
if(s.c - h.c < 0.00001, 'True', 'False') as result_c
on (s.rid = h.rid and s.cid = h.cid)
SELECT s.rid
, s.cid
, IF(s.a - h.a < 0.00001, 'True', 'False') AS result_a
, s.a / h.a - 1                            AS percentage_a
, IF(s.b - h.b < 0.00001, 'True', 'False') AS result_b
, s.b / h.b - 1                            AS percentage_b
, IF(s.c - h.c < 0.00001, 'True', 'False') AS result_c
, s.c / h.c - 1                            AS percentage_c
FROM a.samples    s
INNER JOIN a.hive h ON s.rid = h.rid AND s.cid = h.cid

最新更新