spark只是一个可扩展统一分析数据引擎,并没有对hdfs上具体上文件或目录的属性做处理,有这样需求最好也是调用hadoop filesystem的类来处理;
spark如果说可以处理hdfs文件也就只有读或者创建文件或目录操作而已.
// 目录
val pathStr = "hdfs://nameservice1/user/hive/warehouse/cdp.db/store_user_client_group/store_id=s50"
val path = new Path(pathStr)
var fileSystem: FileSystem = null
try {
fileSystem = org.apache.hadoop.fs.FileSystem.get(spark.sparkContext.hadoopConfiguration)
// list出目录下的文件
val listStatus = fileSystem.listStatus(path)
listStatus.foreach(println)
println("-------------------------")
// 目录
val pathStr2 = "hdfs://nameservice1/user/hive/warehouse/cdp.db/store_user_client_group/store_id=s50/group_id=q1383"
val path2 = new Path(pathStr2)
// 查看目录权限
fileSystem.getFileStatus(path2)
} catch {
case e: Exception => println(e.getMessage)
} finally {
fileSystem.close()
}