如何在Spark中检查HDFS目录是否为空

时间:2019-06-18 23:38:33

标签: api apache-spark hadoop hdfs

我正在使用org.apache.hadoop.fs检查HDFS中的目录是否为空。我查找了FileSystem api,但找不到任何接近它的东西。基本上,我想检查目录是否为空或其中有多少文件。

我能够找到“ exists”方法,但这只能说明路径是否存在。

val hdfs = FileSystem.get(spark.sparkContext.hadoopConfiguration)
val containsFile = fs.exists(new Path(dataPath))

2 个答案:

答案 0 :(得分:1)

您可以获得ContentSummary并检查文件或目录的数量

ContentSummary cs = fileSystem.getContentSummary("path");
long fileCount = cs.getFileCount();

答案 1 :(得分:0)

我会申请:

    FileSytem class中的
  1. listFiles(),例如:

    FileSystem.get(sc.hadoopConfiguration())。listFiles(...,true)

  2. 从返回的RemoteIterator对象中使用hasNext()方法询问是否有元素。