• 数据:
    file1:categoryname addressID

Beijing Red Star 1
Shenzhen Thunder 3
Guangzhou Honda 2
Beijing Rising 1
Guangzhou Development Bank 2
Tencent 3
Bank of Beijing 1
Nanchang Univ 5
Beijing Red Star 1
Nanchang Univ 5
Beijing Red Star 5
Shenzhen Thunder 6
Guangzhou Honda 5
Beijing Rising 6
Guangzhou Development Bank 3
Tencent 5
Bank of Beijing 6
Nanchang Univ 7
Beijing Red Star 1
Shenzhen Thunder 354
Guangzhou Honda 2
Beijing Rising 1
Guangzhou Development Bank 2
Tencent 334
Bank of Beijing 33
Nanchang Univ 5
Beijing Red Star 1
Nanchang Univ 5
Beijing Red Star 51
Shenzhen Thunder 6
Guangzhou Honda 52
Beijing Rising 66
Guangzhou Development Bank 3
Tencent 5
Bank of Beijing 6
Nanchang Univ 7
Beijing Red Star 1
Shenzhen Thunder 3
Guangzhou Honda 2
Beijing Rising 1
Guangzhou Development Bank 2
Tencent 3
Bank of Beijing 1
Nanchang Univ 5
Beijing Red Star 1
Nanchang Univ 5
Beijing Red Star 5
Shenzhen Thunder 8
Guangzhou Honda 5
Beijing Rising 27
Guangzhou Development Bank 3
Tencent 5
Bank of Beijing 9
Nanchang Univ 7
Beijing Red Star 1
Shenzhen Thunder 3
Guangzhou Honda 2
Beijing Rising 1
Guangzhou Development Bank 2
Tencent 3
Bank of Beijing 11
Nanchang Univ 5
Beijing Red Star 3
Nanchang Univ 5
Beijing Red Star 5
Shenzhen Thunder 6
Guangzhou Honda 5
Beijing Rising 6
Guangzhou Development Bank 3
Tencent 5
Bank of Beijing 6
Nanchang Univ 7
Beijing Red Star 1
Shenzhen Thunder 3
Guangzhou Honda 2
Beijing Rising 1
Guangzhou Development Bank 2
Tencent 3
Bank of Beijing 1
Nanchang Univ 5
Beijing Red Star 1
Nanchang Univ 5
Beijing Red Star 23
Shenzhen Thunder 6
Guangzhou Honda 5
Beijing Rising 6
Guangzhou Development Bank 3
Tencent 5
Bank of Beijing 6
Nanchang Univ 7

file2:addressID cityname

1 Beijing
2 Guangzhou
3 Shenzhen
4 Xian
5 xiamen
6 nanchang
7 sichuan
10 xinjiang
12 shanrao
23 heze
111 fuyang

输出格式:
categoryname addressID cityname
例如:

factoryname addressID addressname
Beijing Red Star 1 Beijing
Beijing Red Star 1 Beijing
Bank of Beijing 1 Beijing
Beijing Rising 1 Beijing
Beijing Red Star 1 Beijing
Beijing Rising 1 Beijing
Beijing Red Star 1 Beijing
Beijing Red Star 1 Beijing
Bank of Beijing 1 Beijing

  • 实现:
    比较复杂的实现代码见:此处
    注意这里实现的连接是内连接。
    Bloom Filter的完整实例化代码可以写成:
     public static int getOptimalBloomFilterSize(int numRecords, float falsePosRate) {int size = (int) (-numRecords * (float) Math.log(falsePosRate) / Math.pow(Math.log(2), 2));return size;}public static int getOptimalK(float numMembers, float vectorSize) {return (int) Math.round(vectorSize / numMembers * Math.log(2));}int numMembers = Integer.parseInt("10000");float falsePosRate = Float.parseFloat("0.01");int vectorSize = getOptimalBloomFilterSize(numMembers, falsePosRate);int nbHash = getOptimalK(numMembers, vectorSize);BloomFilter filter = new BloomFilter(vectorSize, nbHash, Hash.MURMUR_HASH);

也可以一句话实现:

static private BloomFilter filter1 = new BloomFilter(13287713, 9, MURMUR_HASH);

基本思路是先处理处两个表中共有的addressID,存储filter中,在对两个表进行map的时候过滤掉addressID不在filter中的记录。
可以将filter的内容写入文件存到HDFS,然后从HDFS中读入内容进行判断(实现代码可以参考

【MapReduce】MapReduce(DataJoin)实现数据连接+Bloom Filter优化相关推荐

  1. MapReduce算法–了解数据连接第二部分

    自从我上一次发布以来已经有一段时间了,就像我上一次大休息一样,我正在Coursera上一些课程. 这次是Scala中的函数式编程 原理和反应式编程原理 . 我发现它们都是不错的课程,如果有时间的话,建 ...

  2. Hadoop实战系列之MapReduce 分析 Youtube视频数据

    Hadoop实战系列之MapReduce 分析 Youtube视频数据 一.实战介绍 MapReduce 是 Hadoop 的计算框架. 在运行一个 MR 程序时,任务过程被分为两个阶段:Map 阶段 ...

  3. 使用MapReduce程序完成相关数据预处理(二)

    使用MapReduce程序完成相关数据预处理(二) 数据大概有2万条左右所以部分截取 (格式为csv) 1月20日,北京,大兴区,2,0,0,北京市大兴区卫健委,https://m.weibo.cn/ ...

  4. ## 使用MapReduce程序完成相关数据预处理

    使用MapReduce程序完成相关数据预处理 数据大概有2万条左右所以部分截取 (格式为csv) 1月20日,北京,大兴区,2,0,0,北京市大兴区卫健委,https://m.weibo.cn/270 ...

  5. 大数据量下的集合过滤—Bloom Filter

    算法背景 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定.链表.树.散列表(又叫哈希表,Hash table)等等数据结构都是这种思路,存储位置要么是磁盘 ...

  6. 【guava】大数据量下的集合过滤—Bloom Filter

    1.概述 转载防丢失,请看原文 算法背景 相似文章:Bing搜索核心技术BitFunnel原理 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定.链表.树. ...

  7. 利用bloom filter算法处理大规模数据过滤

    Bloom Filter是由Bloom在1970年提出的一种快速查找算法,通过多个hash算法来共同判断某个元素是否在某个集合内.可以用于网络爬虫的url重复过滤.垃圾邮件的过滤等等. 它相比hash ...

  8. 数据算法:Bloom Filter

    我们在一些体量亿级的网站或平台注册账号的时候,输入完用户名或账号回车可能会遇到提示:"用户名已存在".系统是如何这么快速的判断出用户名存在与否的呢?这有很多种解决方案: 线性查找: ...

  9. 使用MapReduce对豆瓣的数据评分进行排序,最终只要:电影名,评分 两个字段。(温馨提示:数据需要去重)

    使用MapReduce对豆瓣的数据评分进行排序,最终只要:电影名,评分 两个字段.(温馨提示:数据需要去重) 一. 首先讲一下Java中的compareTo方法: 利用CompareTo时,其返回值为 ...

  10. MapReduce之基于符号数据的朴素贝叶斯分类(完)

    MapReduce之基于符号数据的朴素贝叶斯分类 在上一篇博客MapReduce之基于符号数据的朴素贝叶斯分类(一)中,简单的介绍了朴素贝叶斯算法的原理,接下来讲述如何使用MapReduce实现朴素贝 ...

最新文章

  1. 30万字,“保姆级”可视化视觉设计优质学习攻略推荐
  2. UA OPTI570 量子力学 恒等算符在算符计算中的应用
  3. 关于C语言中递归的一点点小问题
  4. C语言ODBC连接MySQL数据库制作简易用户登录系统
  5. Crowdin 使用指南
  6. android实现字体滚动,Android实现字幕滚动的方法
  7. 用ObjectProxy扩展模型对象
  8. 无边框对话框拖动改变大小的实现总结
  9. linux文本编辑命令vim查找,Linux编辑器vi中文本搜索与替换操作
  10. 游戏打不开该怎么设置计算机,驱动人生游戏修复工具,轻松解决DNF打不开的问题。...
  11. 如何在微信公众号优雅地添加代码
  12. 计算机ipv4地址修改方法,电脑ip地址的修改方法步骤图
  13. win10总是很快自动休眠怎么解决?
  14. Python打印详细报错日志,获取报错信息位置行数
  15. 【数学】函数极限计算
  16. Petalinux 使用外部ADI的内核源码编译记录-附oe_runmake解决办法
  17. Access用户如何借助低代码转型为Web(B/S和移动端)开发?
  18. 联迅文库系统文库介绍
  19. 项目管理基础知识关键路径和松弛时间
  20. oracle查看主备库延迟时间,【分享】Oracle 主备库容灾维护常用的九个SQL

热门文章

  1. Redisson 配置
  2. 计算机网络未来的发展和趋势论文,计算机网络发展论文范文
  3. c语言中常用数学符号,2016GRE数学常用数学符号大盘点
  4. idea项目中的idea文件如何隐藏,以及不小心隐藏之后如何显示idea文件夹
  5. java ocx调用_Javascript调用OCX控件
  6. jeesite如何已生成数据的数据源_JeeSite如何正确连接SQL SERVER 数据库
  7. php 横杠箭头,为什么我的箭头下面有一横线?
  8. 大数据要如何提高 才能满足智慧城市需求?
  9. Linux 常用命令学习-文件及文件夹操作相关命令-持续更新
  10. Cache 应用程序数据缓存