HDFS API 操作例項 二 目錄操作

2022-08-17 17:09:19 字數 1592 閱讀 9260

1.1 遞迴實現讀取檔名(scala + listfiles)

/*

* * 實現:listfiles方法

* 迭代列出資料夾下的檔案,只能列出檔案

* 通過fs的listfiles方法可以自動實現遞迴(自帶遞迴)列出檔案型別

* 第乙個引數是伺服器路徑,第二個引數是否遞迴

* @param srcpath

*/def listfullfilenames(srcpath: string): list[string] =

} finally

buffer.tolist

}

1.2 遞迴實現讀取檔名(scala + liststatus)

/*

* * 通過fs的liststatus方法可以自動實現遞迴(自帶遞迴)列出檔案型別

* @param srcpath 目錄

* @param buffer 全域性的 arraybuffer

* @return

*/val buffer = new arraybuffer[string]()

def listfullfilenames(srcpath: string, buffer: arraybuffer[string]): list[string] =

else

}buffer.tolist

}

注意:使用了全域性buffer,以至於遞迴收集檔案數目

1.3  列出某個目錄讀取檔名(scala)

/*

* 列出具體路徑下的所有檔名稱 *

*/def listfilesnames(finalpath: string): list[string] =

catch

liststatus

}

2.1 hdfs檔案的屬性獲取

def readfilecontent(path: string) =

|是否為檔案: $

|檔案塊大小: $

|檔案所屬組: $

|檔案長度:$

|檔案所有者:$

|檔案的路徑:$

|檔案的父路徑:$

|檔案的名稱:$

|檔案的許可權:$

|檔案副本數:$

|$""".stripmargin)

} }

2.2  正規表示式獲取檔案狀態

/*

* * 正則獲取檔案資訊

*/def readstatusglobstatus() =

|檔案的路徑:$

""".stripmargin)

} }

2.3  正規表示式過濾檔案

/*

* * 過濾檔案資訊

* 過濾出包含compass的路徑

*/def readstatusfilterglobstatus() =

})

注:globstatus 很靈活,內部甚至可以寫一些正規表示式,有時候在處理大資料的預處理的時候可能很有效
參考:

Python操作Redis之二 Hash操作

2 hash 操作 redis中的hash 在記憶體中類似於乙個name對應乙個dic來儲存 hset name,key,value name對應的hash中設定乙個鍵值對 不存在,則建立,否則,修改 r.hset dic name a1 aa hget name,key r.hset dic na...

(二)目錄及檔案操作

命令 ls 選項 目錄 檔案 功能 對於目錄,該命令列出該目錄下的所有子目錄與檔案。對於檔案,將列出檔名及其他資訊。linux檔案系統不是根據字尾名來執行檔案的,而是根據檔案是否有可執行許可權。常用的選項 選項功能 a顯示指定目錄下所有子目錄與檔案。ls a root home l列出指定目錄下所有...

檔案目錄操作命令二

linux mkdir 命令用來建立指定的名稱的目錄,要求建立目錄的使用者在當前目錄中具有寫許可權,並且指定的目錄名不能是當前目錄中已有的目錄。1 命令格式 mkdir 選項 目錄 2 命令功能 通過 mkdir 命令可以實現在指定位置建立以 dirname 指定的檔名 命名的資料夾或目錄。要建立資...