##公司合作项目--基于质差指标筛选结果的 spark-sql 查询系统Demo

##公司合作项目--基于质差指标筛选结果的 spark-sql 查询系统Demo_第1张图片

  • 一系统简介
    • 数据简介
    • 系统功能
  • 二处理流程
    • 数据处理
    • spark-sql 使用流程

一.系统简介

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)

你可能感兴趣的:(spark,数据,运营商,数学建模)