2015-01-13 7 views
5

Próbuję odczytać pliki z katalogu zawierającego wiele podkatalogów. Dane są w S3 i próbuję to zrobić:odczytuje pliki rekurencyjnie z podkatalogów z iskrą z s3 lub lokalnego systemu plików

val rdd =sc.newAPIHadoopFile(data_loc, 
    classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat], 
    classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat], 
    classOf[org.apache.hadoop.io.NullWritable]) 

to nie działa.

Doceń pomoc

+0

próbowałeś po prostu używając 'textfile (" s3n: // /* ")'? –

+0

Tak, próbowałem tego, nie działa – venuktan

+0

Proszę napisać przykład jak zagnieżdżone są katalogi. Prawdopodobnie istnieje rozwiązanie obejmujące proste symbole wieloznaczne, takie jak: 's3n: // bucket/*/*/*'. –

Odpowiedz

9

tak to działa, zajęło to trochę czasu, aby uzyskać poszczególne bloki/dzieli choć w zasadzie konkretnego katalogu w każdym podkatalogu: s3n://bucket/root_dir/*/data/*/*/*

+0

Ta odpowiedź nie jest jasna: co oznacza "konkretny katalog w każdym podkatalogu"? Twój przykład też tego nie pokazuje. dzięki! – javadba

+0

s3n: // bucket/root_dir/*/data/*/*/* w powyższym adresie URL, próbuję odczytać dane z katalogu. Nadrzędny katalog danych jest zmienny, więc użyłem "*". Nadzieja, która pomaga. – venuktan

+0

Brzmi jak inny przypadek użycia niż mój - który jest "dany dir/some/hdfs/dir": znajdź wszystkie pliki pod nim. Struktura/some/hdfs/dir/*/*/*/*. "Nie działa: hdfs -dfs zwraca błąd na każdym znalezionym katalogu. – javadba

-1

ok, spróbuj tego:

hadoop fs -lsr 
drwxr-xr-x - venuktangirala supergroup   0 2014-02-11 16:30 /user/venuktangirala/-p 
drwxr-xr-x - venuktangirala supergroup   0 2014-04-15 17:00 /user/venuktangirala/.Trash 
drwx------ - venuktangirala supergroup   0 2015-02-11 16:16 /user/venuktangirala/.staging 
-rw-rw-rw- 1 venuktangirala supergroup  19823 2013-10-24 14:34 /user/venuktangirala/data 
drwxr-xr-x - venuktangirala supergroup   0 2014-02-12 22:50 /user/venuktangirala/pandora 

-lsr listy rekurencyjnie, a następnie analizować te, które nie zaczynają się od „d”

Powiązane problemy