我想提取两个日期之间存储在hdfs中的所有文件。例如,用户选择startdate和enddate返回在这两个日期之间创建的文件。
如下例:如果选择10-11-1984和02-01-2020,则应返回两个文件: file3.txt
以及 file4.txt
:
/folder_1/file1.txt 24-20-2021
/folder_1/file2.txt 02-10-2020
/folder_1/file3.txt 10-11-1984
/folder_1/file4.txt 02-01-2020
我有一个函数返回json格式的数据,如下例所示:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/webhdfs.html#list_a_directory
我做了一个新的函数只取 "modificationTime"
价值观。
public String getmodificationTime(String hdfsPath)
{
if(hdfs!=null)
{
try
{
Path HdfsPath = new Path(hdfsPath);
FileStatus[] fileIter = this.hdfs.listStatus(HdfsPath);
for (int i=0;i<fileIter.length;i++)
{
String path = fileIter[i].getPath().toString();
// get Modification time from listStatus
long modificationTimeLong = fileIter[i].getModificationTime();
Date modificationTimeDate = new Date(modificationTimeLong);
DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z"); //Example date format: Wed, 4 Jul 2001 12:08:56 -0700 from java doc
String dfDate = df.format(modificationTimeDate);
System.out.println("The file '"+ path + "' was inserted at: "+ dfDate);
}
}
catch(IOException e)
{
logger.error("Path: '{}' not exist", hdfsPath, e.getMessage());
}
}
return dfDate;
这里的问题在于return语句,它不能接受return变量 dfDate
:建议: Create local variable dfDate / Create field dfDate / Create parameter dfDate / Create constant dfDate
你能给我建议一个解决方案吗?如何在两个日期之间从hdfs中提取文件?知道我找到了这个解决方案,如何在nifi工作流中获取两个日期之间的hdfs文件数据?
但我认为 hdfs.lastModified
在hdfs客户端中不推荐使用。
暂无答案!
目前还没有任何答案,快来回答吧!