我正在尝试使用spark从hdfs位置获取目录名称。我正在获取目录的整个路径,而不仅仅是目录名。
val fs = FileSystem.get(sc.hadoopConfiguration)
val ls = fs.listStatus(new Path("/user/rev/raw_data"))
ls.foreach(x => println(x.getPath))
这给了我
HDFS://本地主机/用户/转/ raw_data / 191622-140
HDFS://本地主机/用户/转/ raw_data / 201025-001
HDFS://本地主机/用户/转/ raw_data / 201025-002
HDFS://本地主机/用户/转/ raw_data / 2065-5
HDFS://本地主机/用户/转/ raw_data / 223575-002
如何获得如下输出(即只是目录名称)
191622-140
201025-001
201025-002
2065-5
223575-002
答案 0 :(得分:2)
在使用Path
时使用status.getPath
个对象时,您可以在Path
个对象上使用getName
函数:
FileSystem
.get(sc.hadoopConfiguration)
.listStatus(new Path("/user/rev/raw_data"))
.filterNot(_.isFile)
.foreach(status => println(status.getPath.getName))
会打印:
191622-140
201025-001
201025-002
2065-5
223575-002