-
Type:
Improvement
-
Status: Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 1.10.0
-
Component/s: None
-
Labels:None
if (job.getBoolean(IGNORE_FILES_WITHOUT_EXTENSION_KEY, IGNORE_INPUTS_WITHOUT_EXTENSION_DEFAULT)) { List<FileStatus> result = new ArrayList<>(); for (FileStatus file : super.listStatus(job)) if (file.getPath().getName().endsWith(AvroOutputFormat.EXT)) result.add(file); return result.toArray(new FileStatus[0]); } else { return super.listStatus(job); }
When a user runs an Avro MR job against a directory, it silently filters out files without an avro file extension. Fair enough. However, anecdotally, this is the primary use scenario, so this code probably does not filter out many files.
I suggest that this ArrayList be pre-sized. If there are a lot of files, and all of them have the avro file extension (base case), this ArrayList will had to be expanded multiple times (time and GC). If there is a large list and it gets filtered down a lot, a few hundred bytes are wasted.
- links to