Ich habe ein Verzeichnis von Verzeichnissen auf HDFS, und ich möchte über die Verzeichnisse iterieren. Gibt es eine einfache Möglichkeit, dies mit Spark mithilfe des SparkContext-Objekts zu tun?Spark iterate HDFS Verzeichnis
Antwort
Sie können org.apache.hadoop.fs.FileSystem
verwenden. Insbesondere FileSystem.listFiles([path], true)
Und mit Funken ...
FileSystem.get(sc.hadoopConfiguration()).listFiles(..., true)
Perfekt, danke. – Jon
wirklich nett! [Ich hatte diese Frage] (http://stackoverflow.com/questions/34738296/spark-spark-submit-jars-arguments-wants-comma-list-how-to-declare-a-directory/35550151#35550151), gewährt, ich denke, das würde nicht funktionieren in der ursprünglichen Spark-Submit Call – JimLohse
Wie kann ich eine Liste der Dateien mit dem RemoteIterator erstellt erstellen? – horatio1701d
import org.apache.hadoop.fs.{FileSystem,Path}
FileSystem.get(sc.hadoopConfiguration).listStatus(new Path("hdfs:///tmp")).foreach(x => println(x.getPath))
Das ist für mich gearbeitet.
Spark-Version 1.5.0-cdh5.5.2
Sie mit globStatus Status
auch versuchen können,val listStatus = org.apache.hadoop.fs.FileSystem.get(new URI(url), sc.hadoopConfiguration).globStatus(new org.apache.hadoop.fs.Path(url))
for (urlStatus <- listStatus) {
println("urlStatus get Path:"+urlStatus.getPath())
}
Hier PySpark Version, wenn jemand interessiert ist:
hadoop = sc._jvm.org.apache.hadoop
fs = hadoop.fs.FileSystem
conf = hadoop.conf.Configuration()
path = hadoop.fs.Path('/hivewarehouse/disc_mrt.db/unified_fact/')
for f in fs.get(conf).listStatus(path):
print f.getPath()
In diesem speziellen Fall bekomme ich eine Liste aller Dateien, die disc_mrt.unified_fact Hive-Tabelle bilden.
Andere Methoden des Filestatus Objekt, wie getLen() Dateigröße beschrieben sind hier zu bekommen:
- 1. Rekursives Überwachen eines HDFS-Verzeichnis-Spark-Streams
- 2. Spark Scala Liste Ordner im Verzeichnis
- 3. Get hdfs Dateipfad in Spark
- 4. Spark: hdfs Cluster-Modus
- 5. Verzeichnis in hdfs umbenennen
- 6. new Spark StreamingContext failes mit hdfs Fehler
- 7. spark-ml naive bayes Speichern auf hdfs
- 8. Wie weiß Apache Spark über HDFS-Datenknoten?
- 9. Flume + Spark - Speichern von DStream in HDFS
- 10. Verwenden Sie Spark, um alle Dateien in einem Hadoop HDFS-Verzeichnis aufzulisten?
- 11. .sparkstaging-Verzeichnis in hdfs ist nicht gelöscht
- 12. HDFS: Keine solche Datei oder das Verzeichnis
- 13. Spark Master füllen temporäres Verzeichnis
- 14. Verwenden von Spark DataFrame zum Laden von Daten aus HDFS
- 15. So lesen/schreiben Sie in HDFS vom Treiber in Spark
- 16. Kann keine Datei von HDFS mit Spark lesen
- 17. Kann Dateien von HDFS in Spark nicht verwenden
- 18. Wie funktioniert Spark Partition (ing) auf Dateien in HDFS?
- 19. Verwenden von Dateien aus HDFS in Apache Spark-
- 20. Spark Socket Timeout Problem beim Schreiben in hdfs
- 21. Datei kann nicht aus HDFS in Spark geladen werden Dataframe
- 22. So speichern Sie Iterable [String] zu hdfs in Spark-Scala
- 23. Warum hat die Spark RDD-Partition 2 GB für HDFS?
- 24. schreibe eine RDD in HDFS in einem Spark-Streaming-Kontext
- 25. Datei von HDFS in ein anderes Verzeichnis in HDFS mit OOZIE?
- 26. Gibt es einen hdfs-Befehl, um Dateien im HDFS-Verzeichnis nach Zeitstempel aufzulisten
- 27. Funkenspar Ergebnisse zu HDFS
- 28. HDFS Fehler put: `Eingabe ': Keine solche Datei oder Verzeichnis
- 29. Hadoop \ HDFS: „keine solche Datei oder das Verzeichnis“
- 30. Wie finde ich Hadoop hdfs Verzeichnis auf meinem System?
du meinst ‚Iterierte‘ wie in die Liste der Unterverzeichnisse und Dateien erhalten? oder alle Dateien über alle Unterverzeichnisse erhalten? – maasg
Iterate wie in Liste alle Unterverzeichnisse. Jedes Unterverzeichnis enthält eine Reihe von Textdateien, die ich auf verschiedene Arten verarbeiten möchte. – Jon