似乎SparkContext textFile只希望文件存在于给定的目录位置 - 它也不存在
任何建议如何构造递归 - 可能比手动创建递归文件列表/下降逻辑更简单?
这是用例:文件下
/数据/表/ MY_TABLE
我希望能够通过hdfs调用读取该父目录下所有目录级别的所有文件.
UPDATE
sc.textFile()通过(子类)TextInputFormat调用Hadoop FileInputFormat.在逻辑内部存在执行递归目录读取 - 即首先检测条目是否是目录,如果是,则降序:
<!-- language: java -->
for (FileStatus globStat: matches) {
218 if (globStat.isDir()) {
219 for(FileStatus stat: fs.listStatus(globStat.getPath(),
220 inputFilter)) {
221 result.add(stat);
222 }
223 } else {
224 result.add(globStat);
225 }
226 }
Run Code Online (Sandbox Code Playgroud)
但是,在调用sc.textFile时,目录条目上存在错误:"not a file".这种行为令人困惑 - 因为似乎有适当的支持来处理目录.