我试图获得在我的目录“DWP”中创建的最新子目录名称。
我设法用本地路径执行此代码,但在我的hdfs集群中运行它时,我会出现错误“错误的FS:hdfs:/...,应为:文件:///”
def lastDirectoryHour(): String = {
val env = System.getenv("IP_HDFS")
val currentDate = DateTimeFormatter.ofPattern("YYYY-MM-dd").format(java.time.LocalDate.now)
val readingPath = "hdfs://".concat(env).concat(":9000/user/bronze/json/DWP/").concat(currentDate).concat("/")
val fs = FileSystem.get(new Configuration())
val status = fs.listStatus(new Path(readingPath))
var listDir = ListBuffer[Long]()
var DirName: String = ""
for(value<-status)
{
listDir = listDir += value.getModificationTime
}
for(value<-status)
{
if(value.getModificationTime == listDir.max) {
DirName = value.getPath.getName
}
}
readingPath.concat(DirName)
}
当我添加“addRessource”时,我无法使用返回名称的“listStatus”。您知道如何修改代码,使其返回最新的子目录名称吗?
非常感谢你提前。
1条答案
按热度按时间67up9zun1#
你需要在你的配置对象中设置
fs.defaultFS
的值作为namenode的地址。最有可能的是在你的阅读路径中直到9000。第二个选项可以是.从路径获取文件系统,