撰寫一個文本內容類似如下:
zhang san
li si
zhang xiao
hu xi
....
用Spark分析該文本,輸出含有相同姓的人數。
如:zhang 2 li 1 hu 1
uj5u.com熱心網友回復:
wordcount 官方案例上稍微改造一下就可以了。wordcout是獲取所有的單詞,你只獲取第一個單詞就行uj5u.com熱心網友回復:
[code=scala ]val rdd = sc.parallelize(Array("zhang san","li si","zhang xiao","hu xi"))
val xing = rdd.map(name=> (name.split(" ")(0),1))
val cnt = xing.reduceByKey(_+_)
cnt.collect.foreach(t => println(s"${t._1} : ${t._2}"))
[/code]
有什么問題呢?你是不是因為
cnt.foreach(t => println(s"${t._1} : ${t._2}"))
沒反應,所以就認為失敗了?
因為println是發生在executor上的。除非你選擇master=local[*],那才會在本機列印
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/12489.html
標籤:Spark
