Cygwinディストリビューションを使用して、Hadoop 0.20.3とHive 0.11.0をインストールしました。
まず、Hive CLIの使用方法がわかりません。
Hive> show tables;
その後、入力しても何も起こりません。 Hive -e/-f.
を使用してクエリを実行できます
次に、テーブルを作成しました。
CREATE TABLE Tweet_table(
Tweet STRING
)
COMMENT 'Table of string'
しかし、このテーブルにデータを挿入するにはどうすればよいですか?いくつかのINSERT INTO
サンプルがありますが、試してみると:
INSERT INTO TABLE Tweet_table (Tweet) VALUES ("data")
エラーが発生しました:
FAILED: ParseException line 1:30 cannot recognize input near '(' 'Tweet' ')' in select clause
テーブルにデータを追加するにはどうすればよいですか?
すでにいくつかのデータを含むpre_loaded_tblテーブルがある場合。トリックを使用して、次のクエリでテーブルにデータをロードできます
INSERT INTO TABLE Tweet_table
SELECT "my_data" AS my_column
FROM pre_loaded_tbl
LIMIT 5;
また、「my_data」はpre_loaded_tblのデータとは無関係です。任意のデータを選択し、任意の列名を書き込むことができます(ここではmy_dataとmy_column)。 Hiveでは、同じ列名を持つ必要はありません。ただし、selectステートメントの構造は、Tweet_tableの構造と同じである必要があります。制限を使用して、Tweet_tableに挿入できる回数を決定できます。
ただし、テーブルを作成していない場合は、上記の回答のファイルコピーまたはデータの読み込みコマンドを使用してデータを読み込む必要があります。
データ内の単一引用符でこれを使用してみてください:
insert into table test_Hive values ('1','puneet');
テーブルにパーティションがない場合、コードは次のようになります。
テーブルに挿入table_name
another_table(source table)
からcol_a、col_b、col_cを選択します
-ここでは、制限、グループ化、並べ替えなどの条件を適用できます...
テーブルにパーティションがある場合、コードは次のようになります。
set Hive.exec.dynamic.partition = true;
set Hive.exec.dynamic.partition.mode = nonstrict;
テーブルに挿入table_name
partition(partition_col1
、paritition_col2
)another_table(source table)
からcol_a、col_b、col_c、partition_col1、partition_col2を選択します
-ここでは、制限、グループ化、並べ替えなどの条件を適用できます...
受け入れられた答えがありますが、Hive 0.14の時点でそれを追加したいと思いますが、レコードレベルの操作は許可されています。正しい構文とクエリは次のとおりです。
INSERT INTO TABLE Tweet_table VALUES ('data');
同様の問題に直面したため、impalaを使用してテーブルに単一の行を挿入し、同じクエリで機能しました。これは確実に機能します。