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

时间:2015-01-13 02:40:41

标签: scala hadoop apache-spark

我正在尝试从包含许多子目录的目录中读取文件。数据在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])

这似乎不起作用。

感谢帮助

2 个答案:

答案 0 :(得分:11)

是的它有效,花了一些时间来获取单独的块/拆分,基本上是每个子目录中的特定目录: s3n://bucket/root_dir/*/data/*/*/*

答案 1 :(得分:-1)

好的,试试这个:

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”开头的那些