web-dev-qa-db-ja.com

Hiveテーブルにデータを挿入する

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

テーブルにデータを追加するにはどうすればよいですか?

15
Apaachee

2つの方法でテーブルに新しいデータを挿入できます。

  1. load コマンドを使用して、ファイルのデータをテーブルにロードします。

    LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename.
    
  2. select queryを使用して、新しいデータをテーブルに挿入できます。

    INSERT INTO table tablename1 select columnlist FROM secondtable;
    
36

すでにいくつかのデータを含む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に挿入できる回数を決定できます。

ただし、テーブルを作成していない場合は、上記の回答のファイルコピーまたはデータの読み込みコマンドを使用してデータを読み込む必要があります。

4
Animesh Raj Jha

データ内の単一引用符でこれを使用してみてください:

insert into table test_Hive values ('1','puneet');
3
Puneet Sharma

テーブルにパーティションがない場合、コードは次のようになります。

テーブルに挿入table_nameanother_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_col1paritition_col2another_table(source table)からcol_a、col_b、col_c、partition_col1、partition_col2を選択します

-ここでは、制限、グループ化、並べ替えなどの条件を適用できます...

1
Dhrub Thakur

受け入れられた答えがありますが、Hive 0.14の時点でそれを追加したいと思いますが、レコードレベルの操作は許可されています。正しい構文とクエリは次のとおりです。

INSERT INTO TABLE Tweet_table VALUES ('data');
0

同様の問題に直面したため、impalaを使用してテーブルに単一の行を挿入し、同じクエリで機能しました。これは確実に機能します。

0
kuldeep singh