問題タブ [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.
hadoop - Hiveでsysdate-1を取得します
常にcurrent date -1
ハイブの手段を取得する方法はありますか?yesterdays date
そしてこのフォーマットで20120805
-?
このようにクエリを実行してyesterday's date
、今日のようにデータを取得できますAug 6th
-
しかしdate_sub function
、以下のテーブルがdate(dt)列でパーティション化されているため、昨日の日付を取得するためにこの方法を試してみました。
すべてのパーティションでデータを探していますか?なんで?クエリで何か問題がありますか?
テーブル全体がスキャンされないように、サブクエリで評価を実行するにはどうすればよいですか?
java - Hive のカスタム UserDefinedFunction
問題文
クエリからこの以下のメソッドに形式を渡すため、必要な形式でUserDefinedFunction
取得するために以下を作成しました。yesterday's date
したがって、クラスパスにjarを追加して一時関数を作成して、以下のようなクエリを実行しようとすると、yesterdaydate
常にゼロの結果が返されます-
以下は私が実行しているクエリです-
そして、私は常にゼロの結果を返しますが、8 月 5 日のデータはそのテーブルにあります。
私は何を間違っていますか?任意の提案をいただければ幸いです。
今日の日付が 8 月 6 日の場合、クエリは次のようになります。上記のユーザー定義関数を使用すると、クエリは次のようになります。
注:-私が取り組んでHive 0.6
いるように、変数置換をサポートしていないため、hiveconf
ここでは使用できず、上記のテーブルは でパーティション化されていdt(date) column
ます。
mysql - HiveデータテーブルをMySqlに移動するには?
Hive から MySQL に日付を移動する方法を教えてください。
ハイブ データを Amazon DynamoDB に移動する方法の例を見てきましたが、MySQL のような RDBMS ではありません。DynamoDB で見た例を次に示します。
同じことをしたいのですが、代わりにMySQLを使用します。独自の StorageHandler をコーディングする必要があるのだろうか? 私もsqoopを使いたくないです。HiveQL スクリプトでクエリを直接実行できるようにしたいと考えています。
string - ハイブ:文字列を整数に変換
SELECTとORDERBYを使用して並べ替えるために、ハイブテーブルで文字列列の値を整数に変換する組み込みUDFを探しています。言語マニュアルで検索しましたが、役に立ちませんでした。他の提案も歓迎します。
sql - ANSI SQL PORTABILITY TOHADOOPHIVE変換ツールまたはマクロ
私はHadoopハイブソリューションに取り組んでいます。私の要件は、ツールまたはExcelマクロを使用してansisqlクエリをハイブクエリに変換することです。ツール/マクロはありますか?はいの場合、それらは何ですか。それを実装するための提案が必要ない場合。これは可能ですか?Hive for DMLに代替のSQLクエリ(挿入、更新など)はありますか?長所と短所は何ですか?
どんな提案も大歓迎です。
hadoop - Hive で where 句を使用してネストされた select ステートメントを作成する
Hive クエリの where 句内でネストされた選択を行う必要があります。サンプル コード スニペットは次のようになります。
select *
from TableA
where TA_timestamp > (select timestmp from TableB where id="hourDim")
上記のスクリプトの実行中にエラーが発生したため、これは可能ですか、それともここで何か間違ったことをしていますか?!
私がやろうとしていることをさらに詳しく説明するために、タイムスタンプ付きの統計を公開する cassandra キースペースがあります。定期的に (たとえば、1 時間ごと)、この統計はハイブを使用して集計され、集計されると、そのデータは対応する時間とは別に保存されます。そのため、クエリを 2 回目に実行する (および連続して実行する) 場合、クエリは新しいデータに対してのみ実行する必要があります (タイムスタンプ > previous_execution_timestamp)。最新の実行されたタイムスタンプを別のハイブテーブルに保存し、その値を使用して生の統計を除外することでそれを実行しようとしています。
ハイブを使用してこれを実現できますか?!
hive - HIVE スクリプトで変数を設定する方法
SET varname = value
Hive QL に相当する SQL を探しています
私はこのようなことができることを知っています:
しかし、その後、次のエラーが発生します。
ここでは文字「@」はサポートされていません
hadoop - 列名を返すことができる UDF 関数を使用する hiveQL クエリの作成
retreivecol(age) などの値に基づいて特定の列名を返す Hive UDF 関数を作成したいと考えています。年齢が 20 の場合は、選択クエリで使用される列名のリストを返します。 list ' などで、年齢が 20 歳未満の場合は 'name' だけを返します。したがって、HIVE QL クエリを次のようにしたい
User_Data から retreivecol(age) を選択します。
上記のクエリは、列名として扱い、それに基づいてフィルタリングするのではなく、「name,email,fbuserid,friendslist」などの列の名前を出力するだけです。
hadoop - 通常の列をハイブのパーティション列として変換する
3列のテーブルがあります。ここで、列の 1 つをパーティション列として変更する必要があります。可能性はありますか?そうでない場合、どうすれば既存のテーブルにパーティションを追加できますか。以下の構文を使用しました: create table t1 (eno int, ename string ) データ ローカル '/....path/' をテーブル t1 にロードします。 alter table t1 add partition (p1='india');
エラーが発生しています........
既存のテーブルにパーティションを追加する方法を知っている人はいますか......?
前もって感謝します。
join - Hive を使用して異なる列の同じテーブルを効率的に結合する
私はこれをできるだけ効率的に解決しようとしています。
整数のリストを含む単一の列を持つテーブルidsがあるとします。それを「ids」と呼びましょう。
そして、いくつかの整数列を持つ別のテーブルitemsがあります。
私がしたいのは、table2 からすべての列を選択することですが、値が「ids」テーブルにない場合は NULL が必要です。したがって、私の結果は次のようになります。
これを行うには、項目から選択し、各列のIDに結合します。
残念ながら、これらのテーブルが大きくなる (数百万行) と、同じテーブルに 4 回参加しなければならないのは非常に面倒です。これを行うためのより高速または効率的な方法はありますか?
ありがとう!