如何使用python腳本從hdfs(hadoop)目錄獲取文件列表?使用python腳本從hdfs(hadoop)目錄獲取文件列表
我有以下行的嘗試:
dir = sc.textFile("hdfs://127.0.0.1:1900/directory").collect()
目錄有文件的 「文件1,文件2,文件3 .... fileN」 名單。通過使用線我只有所有的內容列表。 但我需要獲取文件名列表。
任何人都可以請幫我找出這個問題嗎?
在此先感謝。
如何使用python腳本從hdfs(hadoop)目錄獲取文件列表?使用python腳本從hdfs(hadoop)目錄獲取文件列表
我有以下行的嘗試:
dir = sc.textFile("hdfs://127.0.0.1:1900/directory").collect()
目錄有文件的 「文件1,文件2,文件3 .... fileN」 名單。通過使用線我只有所有的內容列表。 但我需要獲取文件名列表。
任何人都可以請幫我找出這個問題嗎?
在此先感謝。
你可以在OS庫 files = os.listdir(path)
使用子
import subprocess
p = subprocess.Popen("hdfs dfs -ls <HDFS Location> | awk '{print $8}",
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
print line
編輯使用listdir同時功能:無應答蟒蛇。第一個選項也可以遞歸地打印所有的子目錄。根據您的要求,最後的重定向語句可以省略或更改。
hdfs dfs -ls -R <HDFS LOCATION> | awk '{print $8}' > output.txt
hdfs dfs -ls <HDFS LOCATION> | awk '{print $8}' > output.txt
文件= os.listdir('HDFS://127.0.0.1:19000 /目錄) 打印文件 錯誤顯示「WindowsError:[錯誤123]的文件名,目錄名或卷標語法是不正確:'hdfs://127.0.0.1:19000/Directoryt /*.*'「。 對於hdfs文件,它不會像普通文件一樣處理嗎? – sara
是的,我需要該目錄中的文件名列表。但在使用上面的代碼,錯誤將顯示我前面提到 – sara
您好Michal,我需要從hdfs(hadoop)目錄不在系統目錄中的文件 – sara