0
2つのハイブテーブルT1とT2があり、どちらも異なるIDを持っています。値間の最小の差でハイブテーブルに参加する
T1: ID1 | value1
T2: ID2 | value2
私はT1とT2に参加したいです。 T1の各value1について、ABS(value1-value2)が最小であるところでID2(ちょうど1つで、以前は使用されていない)を追加する必要があります。 例えばT1は、次のようになります。
ID1 | value1
1 | 20
2 | 17
3 | 10
とT2:
ID2 | value2
a | 19
b | 12
c | 14
d | 8
結果は次のようになります。
ID1 | value1 | ID2
1 | 20 | a
2 | 17 | c
3 | 10 | b
私はHiveQLがSQLに比べていくつかの制限があります理解しています。 しかし、SQLの解決法も機能します。これを行う方法を理解するだけです。
ありがとうございます!小さなテーブルではうまく動作しますが、t1に65k行とt2 485kがある場合、106のうち2つのCPU VCoresしか使用されません。マッパーは1つしかなく、マッピングの進捗状況は何時間も働いても変わっていないようです。このタスクを高速化するためにクラスタの残りの部分をどのように使用できますか? – lacerated
t1テーブルで使用されているファイルを10個の小さなファイルに分割して機能するかどうか確認できますか? – hlagos
分割されたt2が50個のパートに分割されていますが、50個のマッパーの代わりに7個あります。各パートをgzipすれば、各パートに単一のマッパーを割り当てるようになりますが、ハイブがgzipを理解するかどうかは分かりません。 – lacerated