Соединение за одним столом два раза в улье

Я не понимаю, как реализовать это в 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

Теперь из этих таблиц, если первичные (например, A) и вторичные значения table1 (например, 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.

Заранее спасибо.

1 ответ

Преобразован Таблица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 я создал две таблицы

  1. Соединение Table 1 с преобразованным Table2 и преобразованным Table3 в первичном столбце.
  2. Разнесите Таблицу1 во вторичном столбце и Соедините результирующую таблицу с преобразованным Таблицей2 и преобразованной Таблицей3 во вторичном столбце.

Соедините две таблицы выше и найдите результаты, основанные на общих значениях ткани.

Другие вопросы по тегам