Clojure中的Hdfs文件夹大小

时间:2016-07-01 06:12:14

标签: java clojure hdfs clojurescript clojure-java-interop

我必须使用来自Clojure的子目录的HDFS文件夹大小。如何在Clojure中使用getContentSummary和getSpaceConsumed。我知道如何用Java做到这一点。

 FileSystem fs = FileSystem.get(config);
 Path current = new Path(path);
 double size= fs.getContentSummary(current).getSpaceConsumed();

配置已经设置,路径传递到此功能。所以size现在具有作为路径提到的目录的大小。这是Java。我想知道如何在Clojure中做到这一点。

感谢。

1 个答案:

答案 0 :(得分:1)

你“只是”需要关注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))