数据筛选

数据准备

route_log

Apr 23 11:49:54 hostapd: wlan0: STA 14:7d:c5:9e:fb:84

Apr 23 11:49:52 hostapd: wlan0: STA 74:e5:0b:04:28:f2

Apr 23 11:49:50 hostapd: wlan0: STA cc:af:78:cc:d5:5d

Apr 23 11:49:44 hostapd: wlan0: STA cc:af:78:cc:d5:5d

Apr 23 11:49:43 hostapd: wlan0: STA 14:7d:c5:9e:fb:84

Apr 23 11:49:42 hostapd: wlan0: STA 74:e5:0b:04:28:f2

将route_log上传到HDFS上,从route_log中筛选  : month day mac

代码编写

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

public class Route_filter extends Configured implements Tool {

@Override
public int run(String[] args) throws Exception {
// TODO Auto-generated method stub
Configuration conf = getConf();
Job job = new Job(conf, "route_filter");
job.setJarByClass(Route_filter.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(NullWritable.class);
job.setMapperClass(RouteMap.class);
FileInputFormat.addInputPath(job, new Path("/value/route_log"));
FileOutputFormat.setOutputPath(job, new Path("/outvalue/outroute_log"));
job.submit();
return job.isSuccessful() ? 0 : 1;
}

public static void main(String[] args) throws Exception {
ToolRunner.run(new Configuration(), new Route_filter(), null);
}
}

class RouteMap extends Mapper<LongWritable, Text, Text, NullWritable> {
private Text result = new Text();

protected void map(LongWritable key, Text value, Context context)
throws java.io.IOException, InterruptedException {
String lineValue = value.toString();
String[] lineSplit = lineValue.split(" ");
String month = lineSplit[0];
String day = lineSplit[1];
String mac = lineSplit[6];
result.set(month + " " + day + " " + mac);
context.write(result, NullWritable.get());
}
}

  

最终输出结果:

Apr 23 14:7d:c5:9e:fb:84
Apr 23 14:7d:c5:9e:fb:84
Apr 23 74:e5:0b:04:28:f2
Apr 23 74:e5:0b:04:28:f2
Apr 23 cc:af:78:cc:d5:5d
Apr 23 cc:af:78:cc:d5:5d

时间: 2024-10-06 04:08:16

数据筛选的相关文章

excel3——数据筛选

元数据 数据--筛选---自动筛选---输入条件和数值

关于数据筛选的不打不小的问题

问题如下: 假设这样一种情况,首先说明,信息是存放在mysql数据库中的.情况如下,A表信息堆是百万级信息堆(每条信息长度不长,基本在20字符以内,属于简短词语),B则是一条普通信息(长度大概在500字符左右),问,有哪种最有效的方式可以来判断B信息中是否包含有A堆中的信息并返回包含的信息? 在此提供一种解法,如果大家有更好的解法欢迎大家留言交流! 由于A信息堆数据量比较大并存放于数据库中,故产生一个很简单的解法,直接通过一条sql解决,当然,这样会衍生一个问题就是sql优化,如何减少搜索时间就

DataGridView如何实现列标头带数据筛选功能,就象Excel高级筛选功能一样

'近日有本论坛网友问:DataGridView如何实现列标头带数据筛选功能,就象Excel高级筛选功能一样 '今晚正好闲着没事,加之以前也没用到过这个需求,所以就写了个模拟功能,供各位坛友酌情参考. 'VB.NET 2008 环境 '新建一个项目后,只需在Form1中拉一个DataGridView,一个ComboBox,然后将下面代码复制粘贴即可,其它什么也不用做 Public Class Form1 Dim SelectedCol As Integer = 0, IsFindit As Boo

C#进行数据筛选(二)

这里介绍LINQ+Lambda表达式进行数据筛选的方式 这里是第一种方式,还是使用了if条件语句去判断,根据选择的条件去筛选出我所需要的数据 public GxAnaly SelectDay(string ID, DateTime Day) { try { DBEntities db = new DBEntities(); var temp = (from pt in db.Tb_Analysis where pt.ID == Sn select pt).ToList(); // return

pandas DataFrame数据筛选和切片

DataFrame数据筛选--loc,iloc,ix,at,iat 条件筛选 单条件筛选 选取col1列的取值大于n的记录: data[data['col1']>n] 筛选col1列的取值大于n的记录,但是显示col2,col3列的值: data[['col2','col3']][data['col1']>n] 选择特定行:使用isin函数根据特定值筛选记录.筛选col1值等于list中元素的记录: data[data.col1.isin(list)] 多条件筛选 可以使用&(并)与|

LINQ to Object初体验(使用对象取代二维数组作数据筛选)

VS2008里面有个神奇的东西,称之为LINQ,可以透过相同的语法方式来处理各式各样的数据(SQL,XML,Object,...),小喵此次初体验感受一下这个东西,真的很好用,初体验来做个简单的测试,请看小喵娓娓道来 VS2008里面有个神奇的东西,称之为LINQ,可以透过相同的语法方式来处理各式各样的数据(SQL,XML,Object,...),小喵此次初体验感受一下这个东西,真的很好用,初体验来做个简单的测试,请看小喵娓娓道来 先来看一张LINQ的架构图(数据来源:曹祖圣老师在TechEd2

python三大类型数据筛选

如何在列表,字典,集合中根据条件刷选数据 说明: 本文分析的类型: 列表 字典 集合 结合每种类型筛选数据的方法的不同,区分出方法间的差异. 一.列表案例 需求:过滤掉列表中的负数. li = [1,5,-3,-1,0,9,-10,10] 1.通用方法:迭代列表获取列表中的每个元素进行选择 代码: li = [1, 5, -3, -1, 0, 9, -10, 10] ret = [] for i in li: if i >= 0: ret.append(i) print(ret) 2.filte

小技巧:域账号变更信息筛选\用户数据筛选

本文纯属为发骚而生,本着简化工程师.管理员的工作量而整理的一种实用高效方法. 实际工作中,我们有以下几种场景出现: 导入导出帐号信息后,需要对现有账号信息进行筛选比对: 统计备份表格数据之后新生的用户账户信息: 不同时期账户信息状态差异汇总: 分批导入导出账户数据信息比对: 或者是资产盘点的时候对重复数据进行筛选排查: 相同表格不同时期差异对比等: 常规思路: 第一列抽出一个,然后依次对比第二列.找出是否不同: 然后第一列抽出第二个,依次对比第二列,找出是否不同: 或者通过Excel中函数来处理

[DevExpress]TreeList数据筛选

关键代码: public static void Filter(this TreeList tree, FilterCondition fc) { if (tree != null && fc != null) { if (!tree.OptionsBehavior.EnableFiltering) tree.OptionsBehavior.EnableFiltering = true; tree.FilterConditions.Clear(); tree.FilterCondition