0
点赞
收藏
分享

微信扫一扫

【Spark-core】 RDD算子使用练习


【Spark-core】 RDD算子使用练习

根据以下数据集统计出每个月中国城市的 PM2.5总量

【Spark-core】 RDD算子使用练习_数据

package SparkRDD.RDD算子.测验

import org.apache.commons.lang.StringUtils
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
import org.junit.Test

object Test {

def main(args: Array[String]): Unit = {

val conf = new SparkConf().setMaster("local[6]").setAppName("PMTest")
val sc = new SparkContext(conf)
// 读取数据
val data = sc.textFile("src/main/scala/SparkRDD/Rdd算子/测验/fix_1.csv")

// 处理数据
// 1.抽取列
// 并使用map算子转换数据形态为((年,月),PM2.5)的元组
val dataSplit = data.map(item =>
((item.split(",")(26),item.split(",")(27)),item.split(",")(9)))

// 2.清洗
// 2.1 过虑空的、nan
val dataClean = dataSplit.filter(item => StringUtils.isNotEmpty(item._2) && !item._2.equalsIgnoreCase("NA"))

// 2.2 转换数据类型
val dataInt = dataClean.map(item => ( item._1 , item._2.toInt) )

// 3.聚合
val dataReduce = dataInt.reduceByKey((curr, agg) => curr + agg )

// 4.排序
val dataSort = dataReduce.sortBy(item => item._2,ascending = false)
dataSort.take(48).foreach(println(_))

// 5.关闭sc
sc.stop()
}

}

【Spark-core】 RDD算子使用练习_spark_02


举报

相关推荐

0 条评论