在hdfs中/wcinput中創建一個文件:word2.txt在里面寫幾個單詞
啟動hdfs集群
[root@hadoop100 ~]# myhadoop start
[root@hadoop100 ~]# cd /opt/module/spark-yarn/bin
[root@hadoop100 ~]# ./spark-shell
寫個1+1測試一下
按住ctrl+D退出
?進入環境:spark-shell --master yarn
逐個寫代碼:
// 讀取文件,得到RDD
val rdd1 = sc.textFile("hdfs://hadoop100:8020/wcinput/word2.txt")
// 將單詞進行切割,得到一個存儲全部單詞的RDD
val rdd2= rdd1.flatMap(line => line.split(" "))
// 將單詞轉換為元組對象,key是單詞,value是數字1
val rdd3= rdd2.map(word => (word, 1))
// 將元組的value按照key來分組,對所有的value執行聚合操作(相加)
val rdd4= rdd3.reduceByKey((num1, num2) => num1 + num2)
// 收集RDD的數據并打印輸出結果
rdd4.collect().foreach(println)
// 將結果儲存在out111中
rdd.saveAsTextFile("hdfs://hadoop100:8020/out111")
在根目錄下可見out111文件,文件打開后可以看到,word2.txt文件內單詞被拆分
RDD的執行過程
spark大數據分布式
?
————————————————
? ? ? ? ? ? ? ? ? ? ? ? ? ? 版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
? ? ? ? ? ? ? ? ? ? ? ??
原文鏈接:https://blog.csdn.net/2401_87076425/article/details/147892134