2016-07-01 64 views
0

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

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

配置已经设置好了,并且路径被传入了这个函数。所以现在尺寸已经具有作为路径提及的目录的大小。这是用Java编写的。我想知道如何在Clojure中做到这一点。

感谢。

+0

请添加更多的相关信息和一些码。告诉我们你已经试过的东西 – lokusking

+0

完成。我想知道如何在Clojure中实现我的代码的第三行。 – user3083633

+0

你的意思是:'( - >(.getContentSummary current).getSpaceConsumed)' – dsm

回答

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)) 
+0

非常感谢你 – user3083633