一、场景

devicestatus.txt 文件包含了来自于不同运营商的移动设备的数据,不同的数据格式,包括设备ID、当前状态、位置等等。注意,该文件中的记录具有不同的字段分隔符:一些使用逗号,一些使用管道(|)等等。

二、任务

• 加载数据集
• 确定使用哪个分隔符(提示:位置19中的字符是第一次使用分隔符)
• 过滤掉不正确解析的记录(提示:每个记录应该有14个值)
• 提取date(第一个字段)、model(第二个字段)、devive ID(第三字段)、纬度和经度(分别为13和14字段)
• 第二个字段包含设备制造商和模型名称(如Ronin S2)。将此字段分割为分隔制模型 (for example, manufacturer Ronin, model S2.)

三、代码

//1.加载数据,生成RDD

val data=sc.textFile("file:/home/training/training_materials/data/devicestatus.txt")

//2.过滤掉脏数据
val data_filter=data.filter(line => line.length > 20) //3.不同分隔符统一
val mydata2=data_filter.map(line => line.split(line.charAt(19))) //4.过滤掉不正确解析的记录
val mydata3=mydata2.filter(line => line.length == 14) //5.构建格式化数据
val myresult=mydata3.map(line => (line(0),line(1).split(" ")(1),line(2),line(12),line(13)))

最新文章

  1. Swift 学习中的一点体会,不断更新中。。。
  2. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )
  3. console使用方法
  4. 夺命雷公狗ThinkPHP项目之----企业网站21之网站前台二级分类显示名称(TP自定义函数展示无限极分类)
  5. 好记心不如烂笔头之JQuery学习,第三章
  6. 随滚动条滚动的居中div
  7. how tomcat works 札记(两)----------一个简单的servlet集装箱
  8. python 基础安装使用
  9. window10下的eclipse用java连接hadoop执行mapreduce任务
  10. TP-LINK | TL-WR842N设置无线转有线
  11. 《Linux就该这么学》第十四天课程
  12. 三问助你Debug
  13. 467A
  14. 用大白话谈谈XSS与CSRF
  15. git format-patch 用法【转】
  16. linux两个线程
  17. HDUOJ----4504 威威猫系列故事——篮球梦
  18. 【BZOJ5248】【九省联考2018】一双木棋(搜索,哈希)
  19. angularJs中的发送请求例子
  20. vue移动端更改手机物理按键返回问题

热门文章

  1. CSS3 小会
  2. AngularJS 控制器函数
  3. GoBelieve JS IM SDK接入备忘
  4. Kong Api 初体验
  5. 没有美工一样可以获取设计各种各样的UI图
  6. iOS之UITextField输入错误的震动动画
  7. Java分享笔记:Java网络编程--TCP程序设计
  8. Mac系统升级后在终端输入git命令时遇到的问题
  9. 关于Vue的Render的讲解
  10. 2-Linux C语言指针与内存-学习笔记