Czy istnieje sposób zmiany poprawnego i istniejącego obiektu ścieżki Hadoop na użyteczny obiekt pliku Java. Czy jest to dobry sposób na zrobienie tego, czy też muszę go ubić, żeby się zakodować? Bardziej oczywiste sposoby nie działają, i wydaje się, że będzie to wspólny kawałek koduJak przekonwertować obiekt ścieżki Hadoop na obiekt pliku Java
void func(Path p) {
if (p.isAbsolute()) {
File f = new File(p.toURI());
}
}
To nie działa, ponieważ Ścieżka :: Touri() zwraca „HDFS” identyfikator oraz plik Javy (Konstruktor URI) rozpoznaje tylko identyfikator "pliku".
Czy istnieje sposób na połączenie ścieżki i pliku?
**
OK, a konkretnie ograniczony przykład.
Path[] paths = DistributedCache.getLocalCacheFiles(job);
DistributedCache ma dostarczać zlokalizowaną kopię pliku, ale zwraca ścieżkę. Zakładam, że DistributedCache tworzy lokalną kopię pliku, w którym znajdują się na tym samym dysku. Biorąc pod uwagę ten ograniczony przykład, gdzie mam nadzieję, że hdfs nie jest w równaniu, czy istnieje sposób, aby niezawodnie przekonwertować ścieżkę do pliku?
**
Zakładając 'java.nio.file.Path' jest do zaakceptowania (zamiast' java.io.File'), [ta biblioteka] (ht tps: //github.com/damiencarol/jsr203-hadoop) wydaje się obiecujący. – dimo414