46

初心者からの投稿なので...

Hadoop と Hive をセットアップしたので、AWS クラスターのデータにアクセスするコンピューターで Hive クエリを実行できます。MS SQL Server で行ったように、コンピューターに保存されている .csv データを使用して Hive クエリを実行できますか?

.csv データを Hive にロードするにはどうすればよいですか? Hadoop とどのような関係があり、どのモードで実行する必要がありますか?

何か間違ったことをした場合に、以前に設定した内容を損なうことなく、いつでも戻って Amazon でクエリを実行できるようにするには、どのような設定に注意する必要がありますか?

4

6 に答える 6

54

次の簡単な手順を説明します。

手順:

まず、csv ファイルのフィールド名を使用してハイブにテーブルを作成します。たとえば、csv ファイルに 3 つのフィールド (id、name、salary) が含まれていて、"staff" という名前のテーブルをハイブに作成するとします。以下のコードを使用して、ハイブにテーブルを作成します。

hive> CREATE TABLE Staff (id int, name string, salary double) row format delimited fields terminated by ',';

次に、テーブルがハイブに作成されたので、csv ファイルのデータをハイブの「staff」テーブルにロードします。

hive>  LOAD DATA LOCAL INPATH '/home/yourcsvfile.csv' OVERWRITE INTO TABLE Staff;

最後に、ハイブの「Staff」テーブルの内容を表示して、データが正常にロードされたかどうかを確認します

hive> SELECT * FROM Staff;

ありがとう。

于 2015-09-26T08:21:54.750 に答える
17

ハイブ セットアップがある場合は、hdfs/s3 でハイブ ロード コマンドを使用して、ローカル データセットを直接配置できます。

ロード コマンドを記述するときは、"Local" キーワードを使用する必要があります。

hiveload コマンドの構文

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

詳細については、以下のリンクを参照してください。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual%20DML#LanguageManualDML-Loadingfilesintotables

于 2013-10-11T15:28:50.447 に答える
6

これを試してみてください。以下は、ファイルの生成方法に関するいくつかの例です。ツール -- https://sourceforge.net/projects/csvtohive/?source=directory

  1. [参照] を使用して CSV ファイルを選択し、hadoop ルート ディレクトリを設定します。例: /user/bigdataproject/

  2. ツールは、すべての csv ファイルを使用して Hadoop スクリプトを生成します。以下は、csv を Hadoop に挿入するために生成された Hadoop スクリプトのサンプルです。

    #!/bin/bash -v
    hadoop fs -put ./AllstarFull.csv /user/bigdataproject/AllstarFull.csv hive -f ./AllstarFull.hive

    hadoop fs -put ./Appearances.csv /user/bigdataproject/Appearances.csv hive -f ./Appearances.hive

    hadoop fs -put ./AwardsManagers.csv /user/bigdataproject/AwardsManagers.csv hive -f ./AwardsManagers.hive

  3. 生成された Hive スクリプトのサンプル

    CREATE DATABASE IF NOT EXISTS lahman;
    USE lahman;
    CREATE TABLE AllstarFull (playerID string,yearID string,gameNum string,gameID string,teamID string,lgID string,GP string,startingPos string) row format delimited fields terminated by ',' stored as textfile;
    LOAD DATA INPATH '/user/bigdataproject/AllstarFull.csv' OVERWRITE INTO TABLE AllstarFull;
    SELECT * FROM AllstarFull;

ありがとうビジェイ

于 2015-07-13T14:45:33.173 に答える