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

ven*_*tan 8 hadoop scala 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])
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.

感谢帮助

ven*_*tan 13

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

  • 这有效,但是狗很慢.显然,第一个`*`触发一个s3列表,然后对于每个结果,下一个`*`触发一个列表.在发生所有列表时,实际的提取被延迟.有一个递归模式吗? (3认同)