2014-10-18 156 views
1

我是Apache Spark的新手,我開始和Spark一起學習Scala。在這段代碼片段中,當Spark完成程序時,Spark是否處理關閉文本文件?Spark是否處理資源管理?

val rdd = context.textFile(filePath) 

我在Java中知道打開文件時必須用try-catch-finally或try-with-resources關閉它。

在這個例子中,我提到一個文本文件,但我想知道Spark是否處理關閉資源,因爲RDD可以採用多種不同類型的數據集。

回答

1

context.textFile()實際上並不打開文件,它只是創建一個RDD對象。您可以通過爲不存在的文件創建textFile RDD來進行實驗驗證 - 不會拋出任何錯誤。 RDD引用的文件只有在調用action時纔會打開,讀取和關閉,這會導致Spark運行IO和數據轉換,從而導致您執行的操作。