获取HDFS返回的文件路径上带扩展名的文件名

时间:2017-08-29 08:29:02

标签: scala hadoop hdfs

我正在编写一个函数来获取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

有更深的路径。

2 个答案:

答案 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))