問題タブ [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 投票する
1 に答える
990 参照

hbase - Hive-HBase 統合: テーブルが見つかりません

これは、Hive-HBase 統合について言及しています。

まず、 HBase に ORDERS_HIVE_DUMMY という名前のテーブルがないことを確認しました。

次に、ハイブシェルを開始しました:

次に、テーブルを作成しました

次に、テーブルが HBase に作成されていることを確認しました

しかし、Hive でテーブルをクエリすると、例外が発生します。

外部テーブルにクエリを実行するには、HIve プロンプトに記述されたクエリのヒントが必要だと思いますか? エラーは何ですか?

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

sql - UNION ALL を使用して Hive で多くのテーブルを結合しますか?

複数のテーブルから 1 つの変数を追加して (別名、行バインド、連結)、Hive で単一の列を持つ 1 つの長いテーブルを作成しようとしています。これは、この質問 ( HiveQL UNION ALLUNION ALL ) に基づいて使用できると思いますが、これを達成するための効率的な方法がわかりませんか?

擬似コードは次のようになります。

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

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

mysql - HiveQL: 1 対多のテーブルで N 番目の値を見つける

私は単純なテーブルを持っています:

ユーザーは任意の数のイベントを持つことができます (なしからロットまで)。3 番目のイベントのタイムスタンプを (昇順で) 抽出するHiveQLクエリを実行する必要があります。イベントが 3 つ未満の場合は null になります。

UDF を使用してrank()をエミュレートする必要のないソリューションはありますか?

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

hive - ハイブは、2 つの大きなテーブルのユニオンに対して小さなテーブルを MapJoin しません

smallTable0smallTable1、およびの3 つの小さなテーブルがありsmallTable3ます。それらはすべて 100 行未満で、同一のスキーマを持っています。largeTable0largeTable1、およびの3 つの大きなテーブルもありlargeTable3ます。すべてが1Mを超える行を持ち、同一のスキーマを持ち、id列を小さなテーブルと共有し、それ以外のものでパーティション化されていますid(パーティション化が問題になる場合、そうではないと思います)。

を設定した後hive.auto.convert.join=true、次の場合は予想どおり MapJoin になります。

  • 参加smallTable0するsmallTable1
  • 参加smallTable0するlargeTable0
  • に参加smallTable0するsmallTable1 UNION ALL smallTable2

次の場合は、予想どおり MapJoin になりません。

  • largeTable0何に対しても参加。
  • smallTable0何に対しても参加するhive.auto.convert.join=false

ただし、予想外に、次のケースでも MapJoin は発生しません。

  • 参加smallTable0するlargeTable0 UNION ALL largeTable1

正確なクエリは次のとおりです。

正常に動作しますが、MapJoin ではなく Common Join を使用しているため、パフォーマンス ヒットが発生しています。を表すビューを作成してlargeTable0 UNION ALL largeTable1も、問題は解決しません。問題を解決するテーブルを作成すると確信していますがlargetTable0 UNION ALL largeTable1、大量のデータを複製して同期を維持することは望ましくありません。

Union 演算子のソース コード ( here ) には、やや不可解なコメントがあります。

UNION 演算子は明示的な MapJoin ヒントでは許可されていませんが、 UNION 演算子は の結果として開始された MapJoins では許可されているようですhive.auto.convert.join。ただし、一方が許可され、もう一方が許可されない理由がわかりません。MapJoin ではなく、クエリが「機能する」ことを意味する場合を除きます。ただし、これが事実である場合、結合smallTable0するsmallTable1 UNION ALL smallTable2と Common Join になると予想していました。

奇妙な動作は、Hive のバグ、コードのバグ、Hive の機能の欠落、または私の側の誤解の結果ですか?

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

hadoop - マップ側の集約で使用されるハッシュ マップによるメモリ不足

私のハイブクエリはこの例外をスローしています。

8 Gb のデータで 1 つの大きなマスター インスタンスを使用して、8 つの EMR コア インスタンスでこれを試しました。最初に外部テーブルで試しました(データの場所はs3のパスです)。その後、S3 から EMR にデータをダウンロードし、ネイティブのハイブ テーブルを使用しました。しかし、両方で同じエラーが発生しました。

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

hive - 構造体の列を構造体メンバーごとに1つの列を持つテーブルに分解するためのより良いHiveQL構文?

HiveQL で argmax() タイプの関数を探していたところ、バグ トラッカー ( https://issues.apache.org/jira/browse/HIVE-1128 ) でほとんど文書化されていない機能が見つかりました。最初の要素に基づいて最大値を見つけ、構造体全体を返します。(実際には、max() は後続の要素を参照することで関係を解消するのでしょうか? 私にはわかりません。)

とにかく、ある列の最大値を含む行全体を本質的に選択したい場合は、最初に比較値を使用して行を構造体にパックし、次に最大構造体を抽出して最適な行を再構築できます。しかし、構文は反復的で醜いです。それを行うより良い方法はありますか?(自己結合も別のオプションだと思いますが、エレガントではないようで、効率が悪いと思いますか?)

表の例:

ハイブQL:

結果: