标签:reduce ast tin rgs red 复数 csharp ack 程序
package my.scala
import org.apache.spark.{SparkConf, SparkContext}
object
case2 {
def main(args: Array[String]): Unit = {
val conf =
new
SparkConf().setMaster(
"local"
).setAppName(
"reduce"
)
val sc =
new
SparkContext(conf)
sc.setLogLevel(
"ERROR"
)
//获取数据
val two = sc.textFile(
"hdfs://192.168.85.128:9000/quchong"
)
two.filter(_.trim().length>0)
//需要有空格。
.map(line=>(line.trim,
""
))
//全部值当key,(key value,"")
.groupByKey()
//groupByKey,过滤重复的key value ,发送到总机器上汇总
.sortByKey()
//按key value的自然顺序排序
.keys.collect().
foreach
(println)
//所有的keys变成数组再输出
//第二种有风险
two.filter(_.trim().length>0)
.map(line=>(line.trim,
"1"
))
.distinct()
.reduceByKey(_+_)
.sortByKey()
.
foreach
(println)
//reduceByKey,在本机suffle后,再发送一个总map,发送到一个总机器上汇总,(汇总要压力小)
//groupByKey,发送本机所有的map,在一个机器上汇总(汇总压力大)
//如果数据在不同的机器上,则会出现先重复数据,distinct,reduceBykey,只是在本机上去重,谨慎一点的话,在reduceByKey后面需要加多一个distinct
}
}
标签:reduce ast tin rgs red 复数 csharp ack 程序
原文地址:https://www.cnblogs.com/lishengming00/p/12275158.html