9

我正在链接多个 MapReduce 作业,并希望将一些元信息(例如配置或原始输入的名称)与结果一起传递/存储。至少文件“_SUCCESS”以及目录“_logs”中的任何内容都将被忽略。

是否有任何默认情况下被忽略的文件名模式InputReader?或者这只是一个固定的有限列表?

4

1 回答 1

19

默认情况下FileInputFormat使用以下hiddenFileFilter

  private static final PathFilter hiddenFileFilter = new PathFilter(){
      public boolean accept(Path p){
        String name = p.getName(); 
        return !name.startsWith("_") && !name.startsWith("."); 
      }
    }; 

因此,如果您使用任何FileInputFormat(例如TextInputFormat, KeyValueTextInputFormat, SequenceFileInputFormat),隐藏文件(文件名以“_”或“.”开头)将被忽略。

您可以使用FileInputFormat.setInputPathFilter来设置您的自定义PathFilter. 请记住,hiddenFileFilter始终处于活动状态。

于 2013-11-07T09:19:45.010 回答