使用来自 s3 或本地文件系统的 spark 从子目录递归读取文件

read files recursively from sub directories with spark from s3 or local filesystem

我正在尝试从包含许多子目录的目录中读取文件。数据在 S3 中,我正在尝试这样做:

val rdd =sc.newAPIHadoopFile(data_loc,
    classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat],
    classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat],
    classOf[org.apache.hadoop.io.NullWritable])

这似乎不起作用。

感谢帮助

是的,它有效,但花了一段时间才得到个人 blocks/splits,基本上是每个子目录中的特定目录: s3n://bucket/root_dir/*/data/*/*/*

好的,试试这个:

hadoop fs -lsr
drwxr-xr-x   - venuktangirala supergroup          0 2014-02-11 16:30 /user/venuktangirala/-p
drwxr-xr-x   - venuktangirala supergroup          0 2014-04-15 17:00 /user/venuktangirala/.Trash
drwx------   - venuktangirala supergroup          0 2015-02-11 16:16 /user/venuktangirala/.staging
-rw-rw-rw-   1 venuktangirala supergroup      19823 2013-10-24 14:34 /user/venuktangirala/data
drwxr-xr-x   - venuktangirala supergroup          0 2014-02-12 22:50 /user/venuktangirala/pandora

-lsr递归列出,然后解析不以"d"开头的