特定の形式 (以下に示す) でディレクトリに編成されたデータがあり、これらをハイブ テーブルに追加したいと考えています。2012 ディレクトリのすべてのデータを追加したい。以下の名前はすべてディレクトリ名で、最も内側のディレクトリ (第 3 レベル) に実際のデータ ファイルがあります。このディレクトリ構造を変更せずにデータを直接選択する方法はありますか? 任意のポインタをいただければ幸いです。
/2012/
|
|---------2012-01
|---------2012-01-01
|---------2012-01-02
|...
|...
|---------2012-01-31
|
|---------2012-02
|---------2012-02-01
|---------2012-02-02
|...
|...
|---------2012-02-28
|
|---------2012-03
|...
|...
|---------2012-12
これまでに試したクエリは運が悪かった:
CREATE EXTERNAL TABLE sampledata
(datestr string, id string, locations string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
LOCATION '/path/to/data/2012/*/*';
CREATE EXTERNAL TABLE sampledata
(datestr string, id string, locations string)
partitioned by (ystr string, ymstr string, ymdstr string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|';
ALTER TABLE sampledata
ADD
PARTITION (ystr ='2012')
LOCATION '/path/to/data/2012/';
解決策: この小さなパラメーターで問題が解決します。他の人にとって有益な場合があるという質問に追加します。
SET mapred.input.dir.recursive=true;