- 具体要求
- 代码实现
- 结果展示
有一些较为杂乱的数据需要清洗,现在需要将其完成下列 *** 作
取出IP,生成只有一个IP的数据集 简单清洗 统计IP出现的次数 排序,按照IP出现的次序排序 取出前十
数据展示
import org.apache.commons.lang3.StringUtils import org.apache.spark.{SparkConf, SparkContext} object AccessLogTest { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("local[6]").setAppName("AccessLogTest") val sc = new SparkContext(conf) val sourceRDD = sc.textFile("data/access_log_sample.txt") //取出IP赋予词频1 val ipRDD = sourceRDD.map(item => (item.split(" ")(0),1)) .filter(item => StringUtils.isNotEmpty(item._1))//去除掉item中第一个(也就是value,IP)为空的数据 .reduceByKey((curr,agg)=>curr + agg)//统计IP出现的次数 .sortBy(item => item._2,ascending = false)//按照第二项进行牌序(默认是升序),false是降序 .collect().take(10)//收集结果,只取出前十 ipRDD.foreach(item => println(item)) } }结果展示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)