Spark中加載本地(或者hdfs)文件以及SparkContext實例的textFile使用


原文鏈接:Spark中加載本地(或者hdfs)文件以及SparkContext實例的textFile使用

  默認是從hdfs讀取文件,也可以指定sc.textFile("路徑").在路徑前面加上hdfs://表示從hdfs文件系統上讀  

 本地文件讀取 sc.textFile("路徑").在路徑前面加上file:// 表示從本地文件系統讀,如file:///home/user/spark/README.md ‍

網上很多例子,包括官網的例子,都是用textFile來加載一個文件創建RDD,類似sc.textFile("hdfs://n1:8020/user/hdfs/input")

textFile的參數是一個path,這個path可以是:

1. 一個文件路徑,這時候只裝載指定的文件

2. 一個目錄路徑,這時候只裝載指定目錄下面的所有文件(不包括子目錄下面的文件)

3. 通過通配符的形式加載多個文件或者加載多個目錄下面的所有文件

第三點是一個使用小技巧,現在假設我的數據結構為先按天分區,再按小時分區的,在hdfs上的目錄結構類似於:

/user/hdfs/input/dt=20130728/hr=00/

/user/hdfs/input/dt=20130728/hr=01/

...

/user/hdfs/input/dt=20130728/hr=23/

具體的數據都在hr等於某個時間的目錄下面,現在我們要分析20130728這一天的數據,我們就必須把這個目錄下面的所有hr=*的子目錄下面的數據全 部裝載進RDD,於是我們可以這樣寫:sc.textFile("hdfs://n1:8020/user/hdfs/input /dt=20130728/hr=*/"),注意到hr=*,是一個模糊匹配的方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM