Есть ли команда hdfs для отображения файлов в каталоге HDFS в соответствии с меткой времени

Есть ли команда hdfs для отображения файлов в каталоге HDFS в соответствии с меткой времени, по возрастанию или по убыванию? По умолчанию hdfs dfs -ls предоставляет несортированный список файлов.

Когда я искал ответы, у меня получилось обходное решение, то есть hdfs dfs -ls/tmp | sort -k6,7 hdfs dfs -ls/tmp | sort -k6,7. Но есть ли лучший способ, встроенный в hdfs dfs?

Ответ 1

Нет, нет другого способа сортировки файлов на основе даты и времени.
Если вы используете версию hadoop <2.7, вам придется использовать sort -k6, 7, как вы это делаете:

hdfs dfs -ls /tmp | sort -k6,7

И для команды hadoop 2.7.x ls доступны следующие опции:

Usage: hadoop fs -ls [-d] [-h] [-R] [-t] [-S] [-r] [-u] <args>

Options:
-d: Directories are listed as plain files.
-h: Format file sizes in a human-readable fashion (eg 64.0m instead of 67108864).
-R: Recursively list subdirectories encountered.
-t: Sort output by modification time (most recent first).
-S: Sort output by file size.
-r: Reverse the sort order.
-u: Use access time rather than modification time for display and sorting.

Таким образом, вы можете легко отсортировать файлы:

hdfs dfs -ls -t -R (-r) /tmp