zoukankan      html  css  js  c++  java
  • Spark实战练习02--处理分隔符

    一、场景

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

    二、任务

    加载数据集
    确定使用哪个分隔符(提示:位置19中的字符是第一次使用分隔符)
    过滤掉不正确解析的记录(提示:每个记录应该有14个值)
    提取date(第一个字段)、model(第二个字段)、devive ID(第三字段)、纬度和经度(分别为1314字段)
    第二个字段包含设备制造商和模型名称(如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)))
  • 相关阅读:
    ubuntu上搭建review board代码评审站点
    android5.1 for tq335x
    2015.04.11
    DECLARE_GLOBAL_DATA_PTR宏定义问题
    6410移植android4.4.2笔记(持续更新)
    ubuntu安装packet提示重复冲突问题
    android5.0 aosp编译记录(由于机器硬件原因,改为4.4.2编译通过)
    2015.01.16
    2015.01.14
    SDSM框架
  • 原文地址:https://www.cnblogs.com/damonzjw/p/8530706.html
Copyright © 2011-2022 走看看