作者:鐘文斌kebenJ | 来源:互联网 | 2023-09-04 12:40
一.系统简介
1.数据简介:
本Demo系统所用数据是某省某运营商 IPTV 用户数据,基于此数据,经过一系列的数据清洗与数学建模,最终得到了三个质差用户指标,本Demo系统是基于初步筛选的七个指标的数据进行的。
2.系统功能:
在上述的有七个指标的数据中,通过质差指标对新的用户数据进行筛选,筛选出来的即为质差用户-质差设备,方便相关部门对质差设备进行处理,从而能提高QOS。
二.处理流程
1.数据处理:
由于我们使用的是spark-sql版本较老,所以我们存储在 hdfs 上的数据是文本 txt 形式,数据间以逗号隔开,如果数据是excel,则可以通过excel转成 txt 文本,具体流程可以百度。本文使用的spark集群给的工作模式是 spark on yarn。搭建过程可参考:http://blog.csdn.net/zhaolei5911/article/details/53168390
2.spark-sql 使用流程:
val sqlCOntext= new org.apache.spark.sql.SQLContext(sc)
import sqlContext._
case class Person(id : Double,df: Double,jitter: Double,mlr : Double,loss_packet_rate : Double,abend_num : Double,avg_bit_rate : Double,play_time : Double)
val people = sc.textFile("hdfs://hadoop-master:8020/data/zte/24.txt").map(_.split(",")).map(p => Person(p(0).trim.toDouble, p(1).trim.toDouble,p(2).trim.toDouble,p(3).trim.toDouble,p(4).trim.toDouble,p(5).trim.toDouble,p(6).trim.toDouble,p(7).trim.toDouble))
people.registerAsTable("people")
val q_low_qos = sql("SELECT id FROM people WHERE df >= 13 AND mlr <= 20 AND abend_num >20") (由于相关要求,具体筛选出的三个指标保密)
q_low_qos.map(t => "Name: " + t(0)).collect().foreach(println) (输出质差用户的id)