##公司合作項目--基於質差指標篩選結果的 spark-sql 查詢系統Demo

這裏寫圖片描述

一.系統簡介

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章