Jak zebrać wszystkie dane do gałęzi z podkatalogów
Mam dane zorganizowane w katalogach w określonym formacie (pokazane poniżej) i chcę je dodać do tabeli gałęzi. Chcę dodać wszystkie dane z katalogu 2012. Wszystkie poniższe nazwy to nazwy katalogów, a najbardziej wewnętrzny katalog (trzeci poziom) zawiera rzeczywiste pliki danych. Czy istnieje sposób na bezpośrednie wybranie danych bez konieczności zmiany tej struktury katalogów. Wszelkie wskazówki są mile widziane.
/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
Zapytania wypróbowane dotychczas bez szczęścia:
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/';
ROZWIĄZANIE: Ten mały parametr rozwiązuje mój problem. Dodanie do pytania, gdzie może być korzystne dla innych:
SET mapred.input.dir.recursive=true;