2016-07-01 82 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