我正在编写一个函数来获取HDFS中特定目录中的文件列表。我的以下代码成功获取列表
val status = fileSystem.listStatus(new Path("/" + ownerId + folderName ))
status.foreach(x=> println(x.getPath))
在x.getPath中,我获得了一个路径列表
hdfs://localhost:54310/david/12345/account.csv
hdfs://localhost:54310/david/12345/iris.csv
如何过滤获取文件名account.csv和iris.csv的路径?请注意,我正在本地环境中进行开发,因此在部署到远程服务器时,我们可能会得到类似下面的内容。
hdfs://localhost:54310/media/david/12345/iris.csv
有更深的路径。
答案 0 :(得分:0)
这样做,不需要正则表达式
val filepath = x.getPath().toString()
val filename = filepath.substring(filepath.lastIndexOf('/') + 1)
答案 1 :(得分:0)
您可以使用getName
val status = fileSystem.listStatus(new Path("/" + ownerId + folderName ))
status.foreach(x=> println(x.getPath.getName))