日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark获取某个手机号在某个基站下停留的时间和当前手机所在的位置的案例

發布時間:2024/9/27 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark获取某个手机号在某个基站下停留的时间和当前手机所在的位置的案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、業務需求
在擁有手機號在每個基站處停留時間日志 和 基站信息的 算出某個手機號的(所在基站,停留時間),(當前所在經度,當前所在緯度)

其中手機連接基站產生的日志信息類似如下:

18688888888,20160327082400,16030401EAFB68F1E3CDF819735E1C66,1 18611132889,20160327082500,16030401EAFB68F1E3CDF819735E1C66,1 18688888888,20160327170000,16030401EAFB68F1E3CDF819735E1C66,0 18611132889,20160327180000,16030401EAFB68F1E3CDF819735E1C66,0

上面的含義表示的是:手機號,時間,基站ID,接入網絡的類型(0:unknow,1:3G,2:2G,6:4G)

基站信息:

9F36407EAD0629FC166F14DDE7970F68,116.304864,40.050645,6 CC0710CC94ECC657A8561DE549D940E0,116.303955,40.041935,6 16030401EAFB68F1E3CDF819735E1C66,116.296302,40.032296,6

上面的含義表示的是:基站ID,經度,緯度,接入網絡的類型(0:unknow,1:3G,2:2G,6:4G)

2、創建Maven工程。

創建過程參考:http://blog.csdn.net/tototuzuoquan/article/details/74571374,目錄結構和Pom文件和這個里面的代碼一樣。

3、編寫Scale代碼:

package cn.toto.sparkimport org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext}/*** Created by toto on 2017/7/7.*/ object MobileLocation {def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("MobileLocation").setMaster("local")val sc = new SparkContext(conf)val lines : RDD[String] = sc.textFile(args(0))//切分lines.map(_.split(",")).map(arr => (arr(0), arr(1).toLong, arr(2), args(3)))val splited = lines.map(line => {val fields = line.split(",")val mobile = fields(0)val lac = fields(2)val tp = fields(3)//如果是建立連接的val time = if(tp == "1") -fields(1).toLong else fields(1).toLong//拼接數據,某個手機號在某個基站下停留的時間,下面的會返回放到基站里面// ((基站,位置),時間)((mobile, lac), time)})//分組聚合(計算某個手機號在某個基站下所有停留的時間)val reduced : RDD[((String,String),Long)] = splited.reduceByKey(_+_)val lmt = reduced.map(x => {//(基站ID,(手機號,時間))//x._1對應的是元組 ((mobile, lac), time)中的(mobile,lac)//x._2對應的是元組 ((mobile, lac), time)中的time(x._1._2, (x._1._1, x._2))})//連接,數據局val lacInfo : RDD[String] = sc.textFile(args(1))//整理基站數據val splitedLacInfo = lacInfo.map(line => {val fields = line.split(",")//id做為key(基站ID)val id = fields(0)//經度val x = fields(1)//緯度val y = fields(2)//(基站ID,(經度,緯度))(id, (x, y))})//連接join之后的結果是: [(基站ID,((手機號,時間),(經度,緯度)))]val joined: RDD[(String, ((String, Long), (String, String)))] = lmt.join(splitedLacInfo)//按照手機號進行分組//_. :代表的是(基站ID,((手機號,時間),(經度,緯度)))//_._2 :代表的是 ((手機號,時間),(經度,緯度))//_._2_1 :代表的是 (手機號,時間)//_._2._1._1 : 代表的是 手機號val groupedByMobile = joined.groupBy(_._2._1._1)val result = groupedByMobile.mapValues(_.toList.sortBy(_._2._1._2).reverse.take(2))println(result.collect().toBuffer)sc.stop()} }

4、準備數據

位置E:\mobileLocation:

其中E:\mobileLocation\loc_info\loc_info.txt:

9F36407EAD0629FC166F14DDE7970F68,116.304864,40.050645,6 CC0710CC94ECC657A8561DE549D940E0,116.303955,40.041935,6 16030401EAFB68F1E3CDF819735E1C66,116.296302,40.032296,6

19735E1C66.log:

18688888888,20160327082400,16030401EAFB68F1E3CDF819735E1C66,1 18611132889,20160327082500,16030401EAFB68F1E3CDF819735E1C66,1 18688888888,20160327170000,16030401EAFB68F1E3CDF819735E1C66,0 18611132889,20160327180000,16030401EAFB68F1E3CDF819735E1C66,0

DDE7970F68.log

18611132889,20160327075000,9F36407EAD0629FC166F14DDE7970F68,1 18688888888,20160327075100,9F36407EAD0629FC166F14DDE7970F68,1 18611132889,20160327081000,9F36407EAD0629FC166F14DDE7970F68,0 18688888888,20160327081300,9F36407EAD0629FC166F14DDE7970F68,0 18688888888,20160327175000,9F36407EAD0629FC166F14DDE7970F68,1 18611132889,20160327182000,9F36407EAD0629FC166F14DDE7970F68,1 18688888888,20160327220000,9F36407EAD0629FC166F14DDE7970F68,0 18611132889,20160327230000,9F36407EAD0629FC166F14DDE7970F68,0

E549D940E0.log

18611132889,20160327081100,CC0710CC94ECC657A8561DE549D940E0,1 18688888888,20160327081200,CC0710CC94ECC657A8561DE549D940E0,1 18688888888,20160327081900,CC0710CC94ECC657A8561DE549D940E0,0 18611132889,20160327082000,CC0710CC94ECC657A8561DE549D940E0,0 18688888888,20160327171000,CC0710CC94ECC657A8561DE549D940E0,1 18688888888,20160327171600,CC0710CC94ECC657A8561DE549D940E0,0 18611132889,20160327180500,CC0710CC94ECC657A8561DE549D940E0,1 18611132889,20160327181500,CC0710CC94ECC657A8561DE549D940E0,0

5、IDEA中配置輸入參數:

6、運行結果:

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Spark获取某个手机号在某个基站下停留的时间和当前手机所在的位置的案例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲88| 五月天综合视频 | 国产男女猛烈无遮挡免费视频 | 中文字幕+乱码+中文 | 99人妻少妇精品视频一区 | 麻豆小视频 | www.色妞| av在线免播放器 | 青青草原伊人 | 亚洲欧美另类一区 | 精品久久BBBBB精品人妻 | 毛片链接| 波多野在线视频 | 影音先锋中文字幕在线 | 69xxxx国产 | av性色| 痴汉电车在线播放 | 爱草在线视频 | 超碰导航 | 综合色视频 | 丰满放荡岳乱妇91ww | 四虎影视大全 | 理论片国产 | 亚洲欧美日本国产 | 国产三级按摩推拿按摩 | 操日本女人 | 男女在楼梯上高潮做啪啪 | 日本三级中文字幕在线观看 | 日韩成人午夜 | 亚洲久久影院 | 久久精品一级片 | 国产日韩在线视频 | 婷婷亚洲一区 | 台湾a级艳片潘金莲 | 黑人糟蹋人妻hd中文字幕 | 亚洲精品一区二区三区中文字幕 | 婷婷国产精品 | 成人xxxx| 国产黄色免费大片 | 午夜影院男女 | 亚洲精品鲁一鲁一区二区三区 | 人人插人人草 | 黄色尤物视频 | 日本中文字幕视频 | av有码在线| 欧美jizz欧美性大全 | 天堂伊人网 | 国产高潮流白浆喷水视频 | 日本天堂在线 | 在线无码va中文字幕无码 | 自拍视频网址 | 欧美乱妇高清无乱码 | 国产在线观看网站 | 欧美性成人 | 精品人妻一区二区三区久久夜夜嗨 | 日本久久久久久久久久久 | 午夜在线观看影院 | 国产三级自拍视频 | xnxx国产| 国产精品一区二区无码对白 | 欧美激情三级 | 97色吧 | 超碰免费人人 | 久久亚洲网| 在线a免费 | 中文字幕一区二区三区四区五区 | 久久av综合网 | 色天堂视频 | 日本天堂影院 | 精品www久久久久久奶水 | 精品视频在线一区二区 | 性猛交娇小69hd | xx色综合| 毛片网站免费 | 韩国中文字幕在线观看 | 亚洲熟妇av乱码在线观看 | 亚州一二区 | 绿帽av| 精品国产乱码久久久久久婷婷 | 国产农村妇女aaaaa视频 | 久久久不卡国产精品一区二区 | 色热热 | 丁香花电影在线观看免费高清 | 人妻射精一区二区 | 黄色片网站国产 | 特黄一级视频 | 91啪国产| 91九色国产 | 日本在线二区 | 亚洲ⅴ国产v天堂a无码二区 | 麻豆出品 | 日本激情久久 | 福利精品在线 | 91无套直看片红桃 | 亚洲色吧| 亚洲一区二区色图 | 性xxxxx大片免费视频 | 日日噜噜噜夜夜爽爽狠狠 | 激情久久五月 |