¿Cómo leer recursivamente archivos Hadoop desde el directorio usando Spark?
Dentro del directorio dado tengo muchas carpetas diferentes y dentro de cada carpeta tengo archivos Hadoop (part_001
, etc.)
directory
-> folder1
-> part_001...
-> part_002...
-> folder2
-> part_001...
...
Dado el directorio, ¿cómo puedo leer recursivamente el contenido de todas las carpetas dentro de este directorio y cargar este contenido en un único RDD en Spark usando Scala?
Encontré esto, pero no entra recursivamente en subcarpetas (estoy usandoimport org.apache.hadoop.mapreduce.lib.input
):
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
También encontré estopágina web que usaSequenceFile
, pero de nuevo, no entiendo cómo aplicarlo a mi caso.