8

Hadoop に csv ファイルがあり、Hive テーブルがあるので、その csv ファイルをこの Hive テーブルにロードしたい

load LOAD DATA local 'path/to/csv/file' overwrite INTO TABLE tablename; を使用しました。

このエラーで終わった:

Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ",  : 
Unable to retrieve JDBC result set for LOAD DATA local
'path/to/csv/file' overwrite INTO TABLE tablename 
(Error while processing statement: FAILED: 
ParseException line 1:16 missing INPATH at ''path/tp csv/file'' near '<EOF>'
)

注:rでRJDBC接続を使用してこれを試しています

4

3 に答える 3

6

CSVをHiveテーブルにロードするコマンドは(CSVがHDFSにある場合)だと思います。

LOAD DATA INPATH '/user/test/my.csv' INTO TABLE my_test;
于 2014-10-24T10:44:17.007 に答える
0

csv ファイルからハイブ スクリプトを生成するツールを開発しました。以下は、ファイルの生成方法に関するいくつかの例です。ツール -- 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-06-30T05:55:39.150 に答える