0

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

これらのテーブルから、テーブル 1 のプライマリ値 (たとえば A) とセカンダリ値 (例: B) がテーブル 2 に存在し、値がゼロより大きい組織が少なくとも 1 つ存在する場合 (ここでは腎臓があります)、次のようになります。以下を印刷します (出力例)。

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 でクエリを作成する方法を教えてください。

前もって感謝します。

4

1 に答える 1

0

Table2 を以下の形式に変換します。

Table2
id | primary | Tissues
-------------------------------------   
1  | A       | Heart, Kidney
2  | B       | Liver, Kidney
3  | C       | Liver, Kidney

Table3 を以下の形式に変換します。

Table3
id | primary | drug_list
-------------------------
1  | A       | M1,M2
2  | B       | M1,M3,M4

表 1 から、2 つの表を作成しました

  1. Table1 を変換された Table2 および変換された Table3 とプライマリ列で結合します。
  2. セカンダリ列で Table1 を分解し、分解されたセカンダリ列で変換された Table2 および変換された Table3 で結果テーブルを結合します。

上記の 2 つの表を結合し、共通の組織値に基づいて結果を見つけます。

于 2016-04-12T12:30:15.367 に答える