簡體   English   中英

如何從目錄讀取所有文件並並行執行操作?

[英]How can i read all files from a directory and do operations parallelly?

假設我在目錄中有一些文件,並且我想讀取每個文件並從文件(即標題)中提取文件名和第一行以進行驗證。 我們如何在Spark中執行此操作(使用python)。

input_file = sc.textFile(sourceFileDir)

通過sc.textFile()我們可以並行讀取所有文件,但是使用map,我們可以將任何規則或函數應用於rdd中的每個元素。 我不明白如何使用sc.textFile()僅獲取文件名和所有文件的一行

目前,我正在使用for循環來滿足這些要求(如上所述)。

files = os.listdir(sourceFileDir) 
for x in files:
    **operations**

我如何對所有文件進行並行處理,這會節省一些時間,因為目錄中有很多文件。

提前致謝 ..

textFile不是您想要的。 您應該使用wholeTextFile 它創建一個rdd,鍵為FileName,值為內容。 然后,您應用地圖僅獲得第一行:

sc.wholeTextFiles(sourceFileDir).map(lambda x : (x[0], x[1].split('\n')[0]))

這樣,地圖的輸出就是fileName和第一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM