2017-08-01 23 views
0

このテクノロジの学習を開始するために、単一ノードClouderaをインストールしました。今、私はCSVファイルからHUEの表を作成しようとしています。HUEを使用してHiveテーブルを作成する

私はそれをしようとすると、テーブルが作成されますが、任意のデータのない、ただの列構造と、私は次のエラーを取得していますされている:

Error while compiling statement: FAILED: SemanticException Line 1:17 Invalid path ''/user/josholsan/ic_data/_glucosa.csv'': No files matching path hdfs://server_name:8020/user/josholsan/ic_data/_glucosa.csv

エラーがこれを一致するファイルはありませんと言いますパスが、私はターミナルで次のようにしようとすると、ファイルがすぐそこにある:

hadoop fs -ls hdfs//server_name.8020/user/josholsan/ic_data/_glucosa.csv 

コードHUEは、テーブルを作成するために実行されるには、以下のいずれかです。

CREATE TABLE `test`.`cpk` 
(
    `id` bigint , 
    `numsipcod` string , 
    `valor` bigint , 
    `fecharegistro` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
    WITH SERDEPROPERTIES ("separatorChar" = "\t", 
    "quoteChar"  = "\"", 
    "escapeChar" = "\\" 
) 
    STORED AS TextFile TBLPROPERTIES("skip.header.line.count" = "1") 
; 

LOAD DATA INPATH '/user/josholsan/ic_data/_glucosa.csv' INTO TABLE `test`.`glucosa`; 

また、LOAD DATA LOCAL INPATHを使用してローカルからファイルをロードしようとしました。

私は実際にどのように進めるのか分かりません。私はインターネットをチェックしてきましたが、私が見つけたことは私を助けませんでした。 あり私の注意を呼び出す何かだと私は、このライン上のコマンドを記述する際にこのファイルのパーミッションで、パーミッションは次のとおりです。 - RW-R - とにかく

r--の、私は許可を無効にHDFS設定をチェックします。

HDFS/HUE/Clouderaの知識を持っている人なら、ここで問題が発生する可能性があります。事前にごそんなに 感謝=)

+1

ハイブは 'LOCATION'、ないファイルとして**ディレクトリ**を期待しています。また、先頭のドットまたはアンダースコアを持つファイルは、通常セマフォーまたは一時ファイルであり、デザインによっては無視されます。 –

+0

ありがとうございます@SamsonScharfrichter。先行するファイルの名前を変更すると、問題が解決されました。 LOCATIONというディレクトリについて、どのようにしてテーブルにロードするファイルを指定しますか?私のために働いたのはちょうど_なし。もう一度ありがとう。それを解決策として投稿できますか? –

答えて

1

TL;DR    は、あなたのファイルの名前を変更 - のHadoopエコシステムでは、その名を開始点またはアンダースコアと通常の設計により、無視あるデータファイルを。ハイブTextFileフォーマットはMapReduceのTextInputFormatに依存しているwhich files ignored as input by mapper?

(... Hadoop source code excerpt...)

So if you use ... TextInputFormat ... the hidden files (the file name starts with "_" or ".") will be ignored.

から

- したがって、先頭のドットまたは先頭の下線を持つすべてのファイルが無視されます。セマフォ(例えば、PigまたはSparkによって使用される_SUCCESS)または一時ディレクトリ(例えば、.impala_insert_staging/)などであるはずです。

また、the Impala documentationからの抜粋:

The INSERT statement has always left behind a hidden work directory inside the data directory of the table. Formerly, this hidden work directory was named .impala_insert_staging . In Impala 2.0.1 and later, this directory name is changed to _impala_insert_staging .
(While HDFS tools are expected to treat names beginning either with underscore and dot as hidden, in practice names beginning with an underscore are more widely supported.)

関連する問題