package com.bjsxt.scala
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
object SuanZi {
def main(args: Array[String]): Unit = {
/**
* 创建配置
*/
val conf=new SparkConf().setAppName("test").setMaster("local")
/**
* 创建上下文,建立连接
*/
val sc=new SparkContext(conf)
/**
* 传进来文件
*/
val rdd1=sc.textFile("./words")
/**
* 按照空格切分
* 传进来的是什么,就将什么进行切分
*/
val rdd2=rdd1.flatMap(line=>{
line.split(" ")
})
/**
* 利用map,转换成一对一的形式
* 传进来的是什么,就将什么进行转换
*/
val rdd3=rdd2.map(word=>{
new Tuple2(word,1)
})
/**
* 打印出分区数
*/
println("rdd3 partitions length="+rdd3.partitions.length)
/**
* reducebykey依据key值相同
* 给每个组的value进行聚合相加
*/
val rdd4=rdd3.reduceByKey((v1,v2)=>{v1+v2},3)
/**
* 打印出分区数
*/
println("rdd4 partitions length="+rdd4.partitions.length)
/**
* 结果转换
*/
val result=rdd4.sortBy(tuple=>{tuple._1;tuple._2})
/**
* 循环遍历输出
*/
result.foreach(tuplee=>{
println(tuplee)
})
}
}