全國咨詢/投訴熱線:400-618-4000

怎樣使用Spark Shell來讀取HDFS文件?

更新時間:2020年12月21日17時07分 來源:傳智教育 瀏覽次數:

好口碑IT培訓

  下面通過啟動Spark-Shell,并且使用Scala語言開發單詞計數的Spark程序,現有文本文件words.txt(讀者需要在本地創建文件并上傳至指定目錄)在HDFS中的/spark/test路徑下,且文本內容如下。

hello hadoop
hello spark
hellp itcast

  如果使用Spark Shell來讀取HDFS中的/spark/test/ words.txt文件,具體步驟如下:

  1.整合Spark與HDFS

  Spark加載HDFS上的文件,需要修改spark-env.sh配置文件,添加HADOOP_CONF_DIR配置參數,指定Hadoop配置文件的目錄,添加配置參數如下。

\#指定HDFS配置文件目錄
export HADOOP_CONF_DIR=/export/servers/hadoop-2.7.4/etc/hadoop

  2.啟動Hadoop 、Spark服務

  配置完畢后,啟動Hadoop集群服務,并重新啟動Spark集群服務,使配置文件生效。

  3.啟動Spark-Shell編寫程序

   啟動Spark-Shell交互式界面,執行命令如下。

$ bin/spark-shell --master local[2]

  執行上述命令,Spark-Shell啟動成功后,就會進入如圖1所示的程序交互界面。

圖1 spark-shell模式

  Spark-Shell本身就是一個Driver,它會初始化一個SparkContext對象為“sc”,用戶可以直接調用。下面編寫Scala代碼實現單詞計數,具體代碼如下。

scala > sc.textFile("/spark/test/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
res0: Array[(String, Int)] = Array((itcast,1), (hello,3), (spark,1), (hadoop,1))

  上述代碼中,res0表示返回的結果對象,該對象中是一個Array]類型的集合,(itcast,1)則表示“itcast”單詞總計為1個。

  4.退出Spark-Shell客戶端

  可以使用命令“:quit”退出Spark-Shell,如下所示。

scala > :quit

猜你喜歡:

如何操作MapReduce的性能調優?

HBase表常見Shell命令及具體語法操作講解

InputFormat接口的定義代碼怎么設置?

傳智大數據培訓課程

人妻系列无码专区_漂亮人妻被中出中文字幕_人妻中文制服巨乳中文