Innerhalb des angegebenen Verzeichnisses habe ich viele verschiedene Ordner und in jedem Ordner habe ich Hadoop-Dateien (part_001
, etc.).Wie rekursiv Hadoop-Dateien aus dem Verzeichnis mit Spark lesen?
directory
-> folder1
-> part_001...
-> part_002...
-> folder2
-> part_001...
...
das Verzeichnis gegeben, wie kann ich lesen rekursiv den Inhalt aller Ordner in diesem Verzeichnis und laden Sie diese Inhalte in einem einzigen RDD in Spark-Scala mit?
Ich fand dieses, aber es geht nicht rekursiv in Unterordnern (I import org.apache.hadoop.mapreduce.lib.input
bin mit):
var job: Job = null
try {
job = Job.getInstance()
FileInputFormat.setInputPaths(job, new Path("s3n://" + bucketNameData + "/" + directoryS3))
FileInputFormat.setInputDirRecursive(job, true)
} catch {
case ioe: IOException => ioe.printStackTrace(); System.exit(1);
}
val sourceData = sc.newAPIHadoopRDD(job.getConfiguration(), classOf[TextInputFormat], classOf[LongWritable], classOf[Text]).values
Ich fand auch dieses web-page die SequenceFile
verwendet, aber ich verstehe nicht, wieder, wie man Anwenden auf meinen Fall?
Sie mit einem einfachen Wildcard versucht haben? Wenn die Verzeichnisstruktur konsistent ist, sollte es wie ein Charme funktionieren – Chobeat
siehe http://stackoverflow.com/a/27843858/647053 –
@Chobeat: Meinst du, dass die Antwort von dbustosp ('var rdd = sc.textFile (" Pfad/*/* ")') wird direkt tun, was ich erklärt habe, ohne den gesamten Code, den ich gepostet habe, zu schreiben? – user7379562