教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

怎樣使用Linux和HDFS創(chuàng)建RDD?

更新時(shí)間:2020年12月07日14時(shí)53分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  Spark可以從Hadoop支持的任何存儲(chǔ)源中加載數(shù)據(jù)去創(chuàng)建RDD,包括本地文件系統(tǒng)和HDFS等文件系統(tǒng)。

  接下來(lái),我們通過Spark中的SparkContext對(duì)象調(diào)用textFile()方法加載數(shù)據(jù)創(chuàng)建RDD。這里以Linux本地系統(tǒng)和HDFS分布式文件系統(tǒng)為例,講解如何創(chuàng)建RDD。

  1. 從Linux本地文件系統(tǒng)加載數(shù)據(jù)創(chuàng)建RDD

  在Linux本地文件系統(tǒng)中有一個(gè)名為test.txt的文件,具體內(nèi)容如文件1所示。

   文件1 test.txt

 1  hadoop spark
 2  itcast heima
 3  scala spark
 4  spark itcast
 5  itcast hadoop

  在Linux本地系統(tǒng)讀取test.txt文件數(shù)據(jù)創(chuàng)建RDD,具體代碼如下:

  scala> val test=sc.textFile("file:///export/data/test.txt")
  test: org.apache.spark.rdd.RDD[String]=file:///export/data/test.txt
              MapPartitionsRDD[1] at textFile at :24

  上述的代碼中,文件路徑中的“file://”表示從本地Linux文件系統(tǒng)中讀取文件。“test:org.apache.spark.rdd.RDD[String]...”是命令執(zhí)行后返回的信息,而test則是一個(gè)創(chuàng)建好的RDD。當(dāng)執(zhí)行textFile()方法后,Spark會(huì)從Linux本地文件test.txt中加載數(shù)據(jù)到內(nèi)存中,在內(nèi)存中生成了一個(gè)RDD對(duì)象(即test),并且這個(gè)RDD里面包含若干個(gè)String類型的元素,也就是說(shuō),從test.txt文件中讀取出來(lái)的每一行文本內(nèi)容,都是RDD中的一個(gè)元素。

  2. 從HDFS中加載數(shù)據(jù)創(chuàng)建RDD

  假設(shè),在HDFS上的“/data”目錄下有一個(gè)名為test.txt的文件,該文件內(nèi)容與文件3-1相同。接下來(lái),我們通過加載HDFS中的數(shù)據(jù)創(chuàng)建RDD,具體代碼如下:

 scala> val testRDD=sc.textFile("/data/test.txt")
  testRDD:org.apache.spark.rdd.RDD[String]=/data/test.txt MapPartitionsRDD[1]
                      at textFile at :24

  執(zhí)行上述代碼后,從返回結(jié)果testRDD的屬性中看出RDD創(chuàng)建完成。在上述代碼中,我們通過textFile(“/data/test.txt”)方法來(lái)讀取HDFS上的文件,其中方法testFile()中的參數(shù)為“/data/test.txt”文件路徑,傳入的參數(shù)也可以為“hdfs://localhost:9000/data/test.txt”和“/test.txt”路徑,最終所達(dá)效果是一致的。




猜你喜歡:

什么是Sqoop?Sqoop發(fā)展歷程簡(jiǎn)介

大數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù)特點(diǎn)簡(jiǎn)介

黑馬程序員大數(shù)據(jù)培訓(xùn)課程 

傳智播客大數(shù)據(jù)培訓(xùn)課程 

0 分享到:
和我們?cè)诰€交談!