Clojure 中的 Hdfs 文件夹大小

Hdfs folder size in Clojure

我必须要 HDFS 文件夹大小,它有来自 Clojure 的子目录。如何在 Clojure 中使用 getContentSummary 和 getSpaceConsumed。我知道如何在 Java.

中执行此操作
 FileSystem fs = FileSystem.get(config);
 Path current = new Path(path);
 double size= fs.getContentSummary(current).getSpaceConsumed();

配置已设置,路径已传递到此函数中。所以 size 现在有作为路径提到的目录的大小。这是在 Java 中。我想知道如何在 Clojure 中执行此操作。

谢谢。

你"just"需要关注java interop guide:

(let [fs (FileSystem/get config)
      current (Path. path)
      size (.getSpaceConsumed (.getContentSummary fs current))]
  (println size))

或者使用“->”宏,让它读起来更像 Java:

(let [fs (FileSystem/get config)
      current (Path. path)
      size (-> fs (.getContentSummary current) .getSpacedConsumed)]
  (println size))