Ich möchte alle Ordner in einem hdfs-Verzeichnis mit Scala/Spark auflisten. In Hadoop Ich kann dies tun, indem Sie den Befehl: hadoop fs -ls hdfs://sandbox.hortonworks.com/demo/
Spark Scala Liste Ordner im Verzeichnis
Ich versuchte es mit:
val conf = new Configuration()
val fs = FileSystem.get(new URI("hdfs://sandbox.hortonworks.com/"), conf)
val path = new Path("hdfs://sandbox.hortonworks.com/demo/")
val files = fs.listFiles(path, false)
Aber es scheint nicht, dass er in dem Hadoop-Verzeichnis sieht aus, als ich nicht meine Ordner/Dateien finden.
Ich habe auch versucht mit:
FileSystem.get(sc.hadoopConfiguration).listFiles(new Path("hdfs://sandbox.hortonworks.com/demo/"), true)
Aber das hilft uns auch nicht.
Haben Sie eine andere Idee?
PS: Ich habe auch diesen Thread überprüft: Spark iterate HDFS directory aber es funktioniert nicht für mich, da es nicht auf hdfs-Verzeichnis, sondern nur auf dem lokalen Dateisystem mit Schemadatei suchen sucht.
Vielen Dank, listStatus ist viel besser für die Ordner immer und funktioniert gut! In meinem Fall brauche ich keine rekursive Suche, das ist vollkommen in Ordnung. ** Ein Zusatz **: Wenn ich Ihre Codierung verwende, ist das Dateisystem Schema Datei: // und ich kann nicht hdfs: // als Schema verwenden. Also habe ich das Dateisystem auf diese Weise erstellt: 'val conf = new Konfiguration() val fs = FileSystem.get (neuer URI (" hdfs: //sandbox.hortonworks.com/ "), conf)'. Dann akzeptiert das Dateisystem hdfs: // Pfade. – AlexL