devicestatus.txt 文件包含了來自於不一樣運營商的移動設備的數據,不一樣的數據格式,包括設備ID、當前狀態、位置等等。注意,該文件中的記錄具備不一樣的字段分隔符:一些使用逗號,一些使用管道(|)等等。spa
• 加載數據集
• 肯定使用哪一個分隔符(提示:位置19中的字符是第一次使用分隔符)
• 過濾掉不正確解析的記錄(提示:每一個記錄應該有14個值)
• 提取date(第一個字段)、model(第二個字段)、devive ID(第三字段)、緯度和經度(分別爲13和14字段)
• 第二個字段包含設備製造商和模型名稱(如Ronin S2)。將此字段分割爲分隔制模型 (for example, manufacturer Ronin, model S2.)
code
//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)))