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

问题描述 投票:0回答:3

我正在使用

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

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

val hdfs = FileSystem.get(spark.sparkContext.hadoopConfiguration)
val containsFile = fs.exists(new Path(dataPath))
api apache-spark hadoop hdfs
3个回答
2
投票

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

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

1
投票

我会申请:

    来自
  1. FileSytem 类

    listFiles(),例如:

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

  2. 询问返回的对象中是否存在具有 hasNext() 方法的元素 RemoteIterator


0
投票

复制粘贴解决方案

FileSystem.get(sc.hadoopConfiguration()).listFiles(path, true).hasNext()

true
不为空,
false
为空

© www.soinside.com 2019 - 2024. All rights reserved.