問題タブ [hiveql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4231 参照

hadoop - グループ化列で Hive の集計関数を使用する方法

ハイブで以下のように GroupBy 列で組み込みの UDF 関数または独自の UDF 関数を使用しようとすると、エラーが発生するようです

それは不平を言い続けcolumn –col1 not found in group by expressionます。

0 投票する
1 に答える
2990 参照

distinct - Hive パーティション列が「個別の選択」を妨げているようです

次のようにHiveにテーブルを作成しました。

このテーブルで次のクエリを実行します。

期待される結果が得られます:

次に、パーティションを追加するように宣言を変更しました。

クエリ SELECT DISTINCT userId... は以前と同じように数秒間実行されますが、最終的には何も返されません。

構文に気づきました:

しかし、それがパーティション分割列から一意の (異なる) 値を取得する唯一の方法かどうか疑問に思っていました。SHOW PARTITION の出力は、列名が各行の前に付けられているため、SELECT DISTINCT から得られるものを正確に置き換えるものではありません。

私にとって奇妙なのは、次のように、usedId を他の列と一緒に GROUP BY で使用できることです。

ただし、次の場合は何でも返します:

0 投票する
1 に答える
433 参照

hive - テーブルに時間パーティションを追加するためのベスト プラクティス

時間 (年、月、日、時間) で分割されたイベント テーブルを持つ年、月、日、時間を変数として取得するハイブ スクリプトでいくつかのイベントに参加したいのですが、たとえば 6 時間すべてからイベントを追加するにはどうすればよいですか「すべて回復...」なしで私の時間の前に

10倍

0 投票する
2 に答える
5026 参照

join - 電話番号とプレフィックス(可変長)を使用して、Hiveの2つのテーブルを結合します

Hiveを使用して電話番号を地域に一致させようとしています。番号プレフィックス(prefix)をエリア(area)にマップするテーブル(prefmap)と、電話番号(nb)のリストを含む別のテーブル(users)があります。電話番号ごとに一致するのは1つだけです(サブエリアなし)

問題は、プレフィックスの長さが固定されていないため、JOINのON()条件でUDF関数substr(nb、 "prefix's length")を使用して、数値のサブストリングをプレフィックスに一致させることができないことです。

そして、instr()を使用して、番号に一致するプレフィックスがあるかどうかを調べようとすると、次のようになります。

line4でエラーが発生します"Join'1'で左と右の両方のエイリアスが見つかりました)

どうすればこれを機能させることができますか?私はハイブ0.9を使用しています。アドバイスをありがとう。

0 投票する
1 に答える
459 参照

hadoop - データを台無しにする HIVE オーダー

Hive 0.8 と Hadoop 1.03 では、次の表を検討してください。

それから私は試しました:

結果はソートされますが、列名の後のすべてが間違っています。実際、すべての行のそれぞれのフィールドの値がまったく同じで、姓の列がありません。名前と姓のビットマップ インデックスとキーのインデックスもあります。

クエリに何か問題がありますか、それとも order by に関するバグを調査する必要がありますか (特定のものが見つかりません)。

0 投票する
2 に答える
9738 参照

sql - How to use min() in where/having clause (to avoid subquery) in Hive/SQL

I have a large table of events. Per user I want to count the occurence of type A events before the earliest type B event.

I am searching for an elegant query. Hive is used so I can't do subqueries

Wanted Result:

I could not get the "cut-off" timestamp by doing:

But then how can I use that information inside the next query where I want to do something like:

My only idea so far are to determine the cut-off timestamps first and then do a join with all type A events and then select from the resulting table, but that feels wrong and would look ugly.

I'm also considering the possibility that this is the wrong type of problem/analysis for Hive and that I should consider hand-written map-reduce or pig instead.

Please help me by pointing in the right direction.

0 投票する
1 に答える
358 参照

max - HiveQL で変数を最大値に設定する

テーブル totalSpeeds のデータの列 (速度) から値の最初の四分位数を取得したいと考えています。

これを行うために、変数 (しきい値) を作成してから、それ以下の値を選択しました。

これは失敗し、解析エラーが返されました。速度の最初の四分位数の上限を取得するより効率的な方法はありますか? または、上記のコマンドを微調整して、最初の四分位の速度を返す方法はありますか?

前もって感謝します、

アニータ

0 投票する
2 に答える
4198 参照

hive - ハイブ: UDF と GROUP BY

拡張子を返す UDF (GetUrlExt) があります。(例: /abc/models/xyz/images/top.jpg 内の jpg)。データは次のようになります。

「GROUP BY」のないクエリは正常に機能しています。

結果: jpg jpg gif pdf pdf gif pdf pdf jpg

ここで、GetUrlExt UDF の結果に「GROUP BY」が必要です。
期待される結果:
jpg 3 274.6
gif 2 721.5
pdf 4 467.5

しかし、次のクエリは機能しません。

どんな種類の助けも大歓迎です!