私の使用例の1つでは、従来のSQLベースのウェアハウスアプリケーションをHiveに移行しようとしています。私はHiveQLではなくSQLの専門家でもありません。しかし、私はテーブルを作成し、csvをハイブテーブルにインポートすることに成功しました。しかし、その後、ハイブQLでSQLベースの分析クエリを複製しながらロードブロックを襲った。分析アルゴリズムの一つでは、我々は複数の変数を作成して、私はこれはHiveQLで成し遂げるのに苦労していますHiveQLで変数の値を作成し合計する
var x = query1
var y = query2
var z = query3
var count = x + y + z
以下のように、これらの変数の合計を計算する必要があります。
実際、これらの変数はすべて列を形成し、もう1つの列はvar1、var2、およびvar3の合計を持つ合計です。特定の行、つまりvar1、var2、およびvar3の列に値を追加し、その行の合計列に格納できるsumのような集計関数はありますか?
以下のようにすることはできますか?テーブルTEMP自体の作成中にHiveに伝えることはできませんか?
INSERT INTO TABLE TEMP VALUES (1, 2, 1+2);
上記は私がApacheの色相を使用し、フエproviedesハイブエディタ内のすべてのクエリと文を書き、火を好むいます以下の回避策
DROP TABLE T_TEMP;
DROP TABLE VARI;
CREATE TABLE VARI(value INT);
INSERT INTO TABLE VARI VALUES(1);
INSERT INTO TABLE VARI VALUES(2);
CREATE TABLE T_TEMP(var1 INT, var2 INT, total INT);
INSERT INTO TABLE T_TEMP
SELECT
1,
2,
sum(t.value)
from VARI as t;
を試してみましたが、不可能な場合最後にクエリ。
一時的な列に書き込むこと、b)INSERTに値を直接追加すること以外に、他のクリーンな方法がありますか?私は変数x、y、zを持ち、count = x + y + zを合計できることを好みます。
x、y、zとは何ですか? –
それは悪い編集だった。今、私は試みたいくつかの回避策について私の質問を編集しました。しかし、まだ成功はありません。 – Bala
おっと...私の質問が間違っていました。私はクエリを修正し、今私はsum()と2 + 3 inlineの両方を行うことができました。ありがとう – Bala