2017-08-08 33 views
0

我有一個數據框,如下所示。它包含hdfs文件路徑。我想讀取這些值,然後閱讀文件的內容。沒有任何利用並行處理的嵌套RDD,解決這個問題的最好方法是什麼?我使用Scala的2.11和2.1星火讀取數據框中可用的文件路徑並使用spark讀取這些文件的內容

+--------------------+ 
|    value| 
+--------------------+ 
|hdfs://61.81.70.1...| 
|hdfs://61.81.70.1...| 
|hdfs://61.81.70.1...| 
|hdfs://61.81.70.1...| 
+--------------------+ 

編輯基於Ankush答案: 的文件是巨大的,無法使用wholeTextFiles

閱讀謝謝

+0

將它收集到一個字符串數組中,然後用'sc.textFile'映射它。你應該有一系列的RDD – philantrovert

回答

0

你可以使用

sc.wholeTextFiles("path/to/all/file") 

doc link for reference

它生成一對RDD與key =>filepathvalue =>content of file

希望它能幫助!

+0

謝謝你的迴應。我必須逐行閱讀文件內容。從文檔我看到整個文本方法讀取整個內容作爲單個記錄。 Doc還說它會給大文件帶來不好的性能 – Satheesh

+0

你可以使用你的數據幀的地圖[link](https://stackoverflow.com/questions/37108980/how-to-read-a-file-from-hdfs-in- map-quickly-spark- –

+0

我100%同意你的觀點。但從文檔**小文件是首選,大文件也是允許的,但可能會導致性能不佳。** – Satheesh