我必须使用来自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中做到这一点。
感谢。
答案 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))