Unix 如何从Hadoop文件系统(HDFS)获取最新文件?

Unix 如何从Hadoop文件系统(HDFS)获取最新文件?,unix,hdfs,Unix,Hdfs,我想从HDFS获取最新的文件,并且能够在这个帮助下编写相关的东西。这就是我正在尝试的 hdfs dfs -ls /user/data/ | awk -F" " '{print $6" "$7" "$8}'|sort -nr|head|cut -d" " -f3- 但是,此方法也会在文件夹中获取多个文件。下面是执行上述命令的输出 /user/data/Filled_Elements_Reports /user/data/Filled_Elements_Source_Reports /user/d

我想从HDFS获取最新的文件,并且能够在这个帮助下编写相关的东西。这就是我正在尝试的

hdfs dfs -ls /user/data/ | awk -F" " '{print $6" "$7" "$8}'|sort -nr|head|cut -d" " -f3-
但是,此方法也会在文件夹中获取多个文件。下面是执行上述命令的输出

/user/data/Filled_Elements_Reports
/user/data/Filled_Elements_Source_Reports
/user/data/sampleRandomRec_8.csv
/user/data/sampleRec_8.csv
/user/data/Rec_count_per_report_8.csv
/user/data/sampleRandomRec_208.csv
/user/data/sampleRec_208.csv
/user/data/Rec_count_per_report_208.csv
/user/data/sampleRandomRec_9.csv
/user/data/new_Rec_for_2.csv
我只想得到下面的文件
/user/data/sampleRandomRec_8.csv

我想从这个文件中检索文件的
\uuu
后面的数字(这里是8)。

要使用Scala代码从HDFS获取最新文件,请使用以下代码:

val fs=filesystemam.get(Conf)

val filestatus=fs.liststatus(new org.apache.hadoop.fs.Path(“/user/data”))

//按修改时间对文件进行排序

val sortedFiles=filestatus.sortBy(filestatus=>filestatus.getModificationTime)

//从已排序的文件中获取最后一个文件

val last_modified_File=新路径(sortedFiles.last.getPath.toString)


最后修改的文件是hdfs中最后创建的文件的路径。

上述命令是否支持
find
?是否
/user/data/sampleRandomRec_8.csv
最新修改的文件?是否
hdfs dfs-ls/user/data/|awk-F”“{print$6”“$7”“$8}';sort-nr | head 1 | cut d”“-f3-
仅返回一个文件,注意带有
-1