大数据,就是指种类多、流量大、容量大、价值高、处理和分析速度快的真实数据汇聚的产物。

通常会需要考虑存储空间是、效率等问题。解决大数据问题一般主要的思想:

1.文件切分,(将大文件切成若干个小文件进行处理),

2.哈希切分,

3.使用位图。

以下通过几个实例来进行进一步分析:

1、海量日志数据,提取出某日访问百度次数最多的那个IP。(或者:给一个超过100G的文件,文件中存放着iP地址,请找出其中出现次数最多的IP地址)

思考:这两个题是同一个题。IP的数目还是有限的,最多有个2^32(42亿)个IP,注意到IP是32位的。

1byte = 8位

1 KB = 1024 bytes (字节)

1MB = 1024 KB

1 GB = 1024 MB

假设每个IP只出现一次,所需内存大概为(32*2^32)位,约为16个G左右。如果内存足够大,就直接进行统计。但是如果内存没有那么大,)我们可以将大文件切分成若干个小文件(假如为100个小文件),采用映射的方法,比如用IP地址模1000,这样同一个IP地址肯定会出现在同一个小文件中,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。

2.给定100亿个整数,设计算法找到只出现一次的整数。

思考:如果是有符号整数的话,范围为-2147483648~2147483647无符号整数为0~4294967296 ,有符号的使用两个bitset,一个存放正数,一个负数。 每个数使用两个位来判断其出现几次。00表示出现0次,01出现1次,10出现大于一次。

比如说存放整数100,就将bitset的第100*2位设置为+1,当所有数放完之后,对每两位进行测试看其值为多少?若是第i为与i+1为的值为01,则这个整数:i*2,在集合中只出现了1次。需要总共用bitnun=(2^31*2)个位表示,需空间为int[bitnum],即512M.

3.给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?

方案1:40亿个整数差不多相当于全部整数,需要总共用(2^32)个位表示,需空间为int[bitnum],即512M.申请512M的内存,一个bit位代表一个unsigned int值。读入40亿个数,设置相应的bit位,读入要查询的数,查看相应bit位是否为1,为1表示存在,为0表示不存在。

方案2:因为2^32为40亿多,所以给定一个数可能在,也可能不在其中;这里我们把40亿个数中的每一个用32位的二进制来表示假设这40亿个数开始放在一个文件中。

然后将这40亿个数分成两类: 1.最高位为0 2.最高位为1 并将这两类分别写入到两个文件中,其中一个文件中数的个数<=20亿,而另一个>=20亿(这相当于折了);与要查找的数的最高位比较并接着进入相应的文件再查找,再然后把这个文件为又分成两类: 1.次最高位为0 2.次最高位为1。并将这两类分别写入到两个文件中,其中一个文件中数的个数<=10亿,而另一个>=10亿(这相当于折半了); 与要查找的数的次最高位比较并接着进入相应的文件再查找。

....... 以此类推,就可以找到了,而且时间复杂度为O(logn)。

方案3:位图方法,使用位图法判断整形数组是否存在重复 判断集合中存在重复是常见编程任务之一,当集合中数据量比较大时我们通常希望少进行几次扫描,这时双重循环法就不可取了。( 位图法比较适合于这种情况,它的做法是按照集合中最大元素max创建一个长度为max+1的新数组,然后再次扫描原数组,遇到几就给新数组的第几位置上1,如遇到5就给新数组的第六个元素置1,这样下次再遇到5想置位时发现新数组的第六个元素已经是1了,这说明这次的数据肯定和以前的数据存在着重复。它的运算次数最坏的情况为2N。如果已知数组的最大值即能事先给新数组定长的话效率还能提高一倍。)

Bingdata优网助帮汇聚多平台采集的海量数据,通过大数据技术的分析及预测能力为企业提供智能化的数据分析、运营优化、投放决策、精准营销、竞品分析等整合营销服务。

北京优网助帮信息技术有限公司(简称优网助帮)是以大数据为基础,并智能应用于整合营销的大数据公司,隶属于亨通集团。Bingdata是其旗下品牌。优网助帮团队主要来自阿里、腾讯、百度、金山、搜狐及移动、电信、联通、华为、爱立信等著名企业的技术大咖,兼有互联网与通信运营商两种基因,为大数据的算法分析提供强大的技术支撑。

大数据处理问题及解决方法相关推荐

  1. Linux系统盘爆满根目录100%,又找不到占空间的大文件 原因与解决方法

    最近一位朋友他的Linux(Centos7)根目录一直100%,也就是系统文件磁盘已经爆满了.虽然通过:df -h, du -sh * 等指令配合使用,发现当前系统任然存在大量可以使用的空间(6.5G ...

  2. html中图片太大了,css背景图片太大的坏处与解决方法

    在制作网页的过程中,有时候我们为了页面的个性.漂亮,会给通过CSS给网页设置一个很大的背景图片,可是背景图片太大的话不但会给我们的访客带来一些烦恼,还会对搜索引擎不友好,导致排名的降低,实在是得不偿失 ...

  3. 【Android Studio】ImageView / ImageButton 图片太大或者太小解决方法

    第一步:指定layout_width与layout_height 在xml文件中设置的ImageButton的宽和高为: android:layout_width="100dp" ...

  4. 计算机屏幕显示故障,led显示屏的十大常见故障及其解决方法

    led显示屏的十大常见故障及其解决方法 一.显示屏不工作,发送卡的绿灯闪烁 故障原因: 屏体无电源:网线连接不正确; 接收卡无电源或电源电压过低:发送卡已损坏:信号传输中间设备的连接或故障(如功能卡. ...

  5. php 7.0 readfile_php readfile下载大文件失败的解决方法

    本文实例讲述了php readfile下载大文件失败的解决方法.分享给大家供大家参考,具体如下: 大文件有200多M,只下载了200K就提示下载完成,且不报错. 原因是PHP内存有限制,需要改为按块下 ...

  6. Google Drive 大文件下载中途失败解决方法

    超快速!!Google Drive 大文件下载半途失败解决方法 最近需要在Google Drive上下载约18G的文件,下载中途经常断掉.查资料发现如下网站的操作很有效

  7. 计算机主机风扇声音大的原因,电脑主机风扇声音大的原因及解决方法

    为了帮助电脑更好的散热,在电脑主机上面也有安装风扇,一般电脑一开机风扇也开始运行.但是有些人却发现电脑主机风扇运行的过程中声音非常的大,由于声音比较大的关系导致自己很心烦.为大家介绍电脑主机风扇声音大 ...

  8. ImageView / ImageButton 图片太大或者太小解决方法

    ImageView / ImageButton 图片太大或者太小解决方法 参考文章: (1)ImageView / ImageButton 图片太大或者太小解决方法 (2)https://www.cn ...

  9. 查看计算机内存占用快捷方式,电脑内存占用大的几种解决方法

    很多人玩着游戏或者看电影的时候,会跳出个提示,显示电脑内存占用大,电脑内存占用大是什么原因造成,针对这种问题有什么好的解决方法,就让小编告诉你们电脑内存占用大的几种解决方法. 电脑内存占用大的几种解决 ...

最新文章

  1. Python input()
  2. 自我学习的技巧和建议
  3. 一键装机linux_(推荐)linux用一键安装包
  4. Qt-按钮无文本显示
  5. [导入]MSIL: call callvirt
  6. PYPL 11 月的 IDE 指数榜单
  7. 区块链 以太坊 全局变量 msg包括哪些字段
  8. 工作没做好,别人指出时最好装聋作哑
  9. CS231n李飞飞计算机视觉 卷积神经网络详解下
  10. 【图像标注】使用vue3实现图像标注功能
  11. 图像的特征提取——HOG特征、Harr特征、LBP特征
  12. 邱锡鹏《神经网络与深度学习》—— 部分习题答案整理
  13. 苹果与深圳唯冠的未了之战
  14. 方框加对勾怎么输入_对号“√”怎么输入到方框“□”-空格对号
  15. [Simulink] 从手写代码到自动生成代码
  16. WXP380 电容式MEMS高性能数字气压传感器 电容式MEMS压力传感器快速代DPS310 BMP380 SLP06 HP303B “电容式”噪声超低的高精度MEMS气压传感器;
  17. 论文的关键词应该如何选取?
  18. RK3128-Android7.1-IR-深度剖析
  19. 最新的html标签属性大全,html标签属性大全
  20. android通用ui库设计规范,难查的ANDROID APPUI设计规范总览

热门文章

  1. 软件企业认定条件政策
  2. 每日一犬 · 中国冠毛犬
  3. 预告:揭秘7*24小时用数学解码交易的神秘玩家,量化交易者——TokenInsight对话首席...
  4. 爬取携程景点可能遇到的问题
  5. 电脑端采集手机视音频并同步
  6. 大道至简----多示例学习与注意力机制的巧妙结合
  7. PADS9.5使用笔记(常用功能和疑难问题)
  8. centos7.x 搭建php运行环境
  9. 解决MAC 安装绿联网卡驱动无效问题
  10. 在Linux中开机自动运行普通用户脚本程序