我不知道如何在Hive中实现它。请提出建议。
假设我有像这样的hive表
Table1:
id | primary | secondary
-------------------------
1 | A | [B,C]
2 | B | [A]
3 | C | [A,B]
Table2
id | primary | Heart | Liver | Kidney
-------------------------------------
1 | A | 1.3 | 0 | 0.9
2 | B | 0 | 3 | 2.3
3 | C | 0 | 9 | 4.3
Table3
id | medicine | primary
-----------------------
1 | M1 | A
2 | M2 | A
3 | M3 | B
4 | M4 | B
5 | M1 | B
现在从这些表中,如果table1的主要(例如A)和次要值(例如:B)存在于table2中,并且如果存在至少一个组织,其值大于零(这里肾脏在那里),然后我必须打印以下内容(示例输出)。
primary | direct | secondary | indirect | tissue_name
------------------------------------------------------
A | M1,M2 | B | M1,M3,M4 | kidney
B | M1,M3,M4| A | M1,M2 | kidney
C | None | B | M1,M3,M4 | Liver, Kidney
任何人都可以帮我解决如何在Hive中编写查询。
提前致谢。
答案 0 :(得分:0)
将表格2转换为以下格式:
Table2
id | primary | Tissues
-------------------------------------
1 | A | Heart, Kidney
2 | B | Liver, Kidney
3 | C | Liver, Kidney
将表格3转换为以下格式:
Table3
id | primary | drug_list
-------------------------
1 | A | M1,M2
2 | B | M1,M3,M4
从表1中,我创建了两个表
加入两个表格并根据常见组织值查找结果。