Spark每日半小時(21) 檔案系統

2021-09-24 15:17:11 字數 942 閱讀 7672

spark支援從本地檔案系統中讀取檔案,不過它要求檔案在集群中所有節點的相同路徑下都可以找到。

一些像nfs、afs以及mapr的nfs layer這樣的網路檔案系統會把檔案以常規檔案系統的形式暴露給使用者。如果你的資料已經在這些系統中,那麼你只需要指定輸入為乙個file://路徑;只要這個檔案系統掛載在每個節點的同乙個路徑下,spark就會自動處理

如果檔案還沒有放在集群中的所有節點上,你可以在驅動器程式中從本地讀取該檔案而無需使用整個集群,然後再呼叫parallelize將內容分發給工作節點。不過這種方式可能會比較慢,所以推薦的方法是將檔案先放到像hdfs、nfs、s3等共享檔案系統上。

用amazon s3來儲存大量資料正日益流行。當計算節點部署再amazon ec2上的時候,使用s3作為儲存尤其快,但是在需要通過公網訪問資料時效能會差很多。

要在spark中訪問s3資料,你應該首先把你的s3訪問憑據設定為aws_access_key_id和aws_secret_access_key環境變數。你可以從amazon web service控制台建立這些憑據。接下來,將乙個以s3n://開頭的路徑以s3n://bucket/path-within-bucket的形式傳給spark的輸入方法。和其他所有檔案系統一樣,spark也能在s3路徑中支援通配字元,例如s3n://bucket/my-files/*.txt。

如果你從amazon那裡得到s3訪問許可權錯誤,請確保你指定了訪問金鑰的賬號對資料桶有「read」和「list」的許可權。spark需要列出桶內的內容,來找到想要讀取的資料。

hadoop分布式檔案系統是一種廣泛使用的檔案系統,spark能夠很好地使用它。hdfs被設計為可以在廉價地硬體上工作,有彈性地應對節點失敗,同時提供高吞吐量。spark和hdfs可以部署在同一批機器上,這樣spark可以利用資料分布來盡量避免一些網路開銷。

在spark中使用hdfs只需要將輸入輸出路徑指定為hdfs://master:port/path就夠了。

Qt學習之路21 檔案操作

io操作的本質就是讀寫一段連續的儲存空間。qfile file qstring c users song8023 desktop test.txt 定義乙個檔案qfile類物件時需要指定路徑和名字,if file.open qiodevice writeonly qiodevice text 以只寫...

DW學習 Python基礎13(檔案與檔案系統)

2 檔案的讀寫 3 檔案備份 4 os模組及常用函式 5 批量修改檔名 6 習題 注意 訪問模式可以省略,預設為r模式 例子 a open demo1.txt r print a.read 6 a.close aaaaa 有乙個換行符 例子 a open demo1.txt r b a.readli...

python基礎 Task09 檔案與檔案系統

開啟檔案 open file mode r buffering none encoding none errors none newline none closefd true 有了os operation system 模組,我們不需要關心什麼作業系統下使用什麼模組,os模組會幫你選擇正確的模組並...