积累(五-大数据处理)

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 问:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url。 答:单个文件的大小达到5G*64=320G,所以要拆成小的部分。 1.遍历文件a,对每一个url计算key=hash(url)%1000。相同key的url存放在一个文件里。这样我们得到了1000个文件(a0、a1、...、a999)。 2.对b采用同样的方法。得到

微笑问:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url。
答:单个文件的大小达到5G*64=320G,所以要拆成小的部分。
1.遍历文件a,对每一个url计算key=hash(url)%1000。相同key的url存放在一个文件里。这样我们得到了1000个文件(a0、a1、...、a999)。
2.对b采用同样的方法。得到(b0、b1、...、b999)。
3.在每对(ai,bi)中找共同的url。注意这样处理不会有遗漏。
下面再解决小文件中找共同url的方法。
可使用STL中的set<string> m_set,将第一个文件中每个url都放进去。再针对第二个文件的每个url作 m_set.find(url)!=m_set.end()的判断。

微笑问:N个降序有序队列,找到最大的K个数。(百度2015秋招真题)
答:解决方法堆排序:
1. 选取每个队列中第一个元素建立大根堆,堆中元素个数为队列的个数N;
2. 删除最大堆堆顶,保存到所求的集合中,然后向最大堆插入/刚才删除元素所在队列的/下一元素。

3. 重复第1,2个步骤,直到求得最大的K个数。


微笑问:如何求N个数中的前K个最大的数?

答:堆排序。
算法描述
1.首先取这N个数中的前K个数来建立一个小顶堆,这样堆顶元素便是当前已读取元素中的第K大者。
2.然后,依次读取剩下的数x与堆顶数字y比较,若x>y,则将堆顶元素替换为x,并自顶至向下调整堆。
3.至此,我们维护的堆即为答案。
扩展
1.当K>N/2时,可以原问题可转化为求前N-K个最小的数,然后求差集。
2.当数字为整数且范围有限时,可以考虑桶排序。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
4月前
|
分布式计算 监控 大数据
大数据调优经验
大数据调优经验
52 0
|
4月前
|
存储 数据采集 数据可视化
大数据处理技术
【4月更文挑战第10天】大数据处理涵盖采集、预处理、存储、分析挖掘、展现和应用等关键步骤。采集涉及多种类型数据,预处理确保数据质量,存储管理关注规模、速度和安全,分析挖掘利用机器学习发现价值,展现和应用则通过可视化和检索实现数据价值。云计算和AI强化了大数据处理能力,整体目标是提取数据中的价值,驱动企业和社会进步。
124 4
大数据处理技术
|
2月前
|
机器学习/深度学习 存储 分布式计算
驾驭数据洪流:大数据处理的技术与应用
大数据处理不仅是信息技术领域的一个热门话题,也是推动各行各业创新和发展的重要力量。随着技术的进步和社会需求的变化,大数据处理将继续发挥其核心作用,为企业创造更多的商业价值和社会贡献。未来,大数据处理将更加注重智能化、实时性和安全性,以应对不断增长的数据挑战。
|
4月前
|
机器学习/深度学习 存储 人工智能
大数据处理与分析技术:未来的基石
在信息化时代,数据已成为企业发展和决策的基础。而随着数据量的不断增长,传统的数据处理方法已经无法满足现代企业的需求。因此,大数据处理与分析技术的出现成为了新时代的必需品。本文将介绍大数据处理与分析技术的概念,意义、应用场景以及未来发展趋势。
94 3
|
4月前
|
存储 分布式计算 算法
大数据处理:挖掘价值之道
大数据处理:挖掘价值之道
|
9月前
|
存储 数据采集 分布式计算
大数据处理的发展
大数据处理的发展
|
存储 数据挖掘 大数据
大数据数据分析架构探究(二)
上一篇提到机器与机器之间交流,这里解释一下意思,其实说的是机器与机器间像人一样交流,但交流的密度更甚于人与人之间,甚至于远远超过人,因为它突破了很多人的限制。首先最重要突破的限制是交流的频率和交流的网络,交流的频率就是人与人交流一条消息的平均时间和机器与机器交流的时间的对比。
1271 0
|
存储 数据挖掘 大数据
大数据数据分析架构探究
从范式角度来讲,维度建模是以2NF的方式来描述数据,实体关系建模是以3NF的方式进行数据描述,由于分布式数据架构的兴起,使得维度建模得到了技术支持。换句话讲,现在数据增长的速度,对于现在的数据技术架构不再是技术瓶颈。
1569 0
|
SQL 存储 人工智能
阿里巴巴少杰:大数据处理实践
2018年1月6日的数据智能技术论坛上,来自阿里巴巴计算平台事业部高级技术专家少杰带来大数据处理的相关演讲。本文首先浅谈了大数据处理发展历程和MapReduce的诞生,以确定大数据处理系统的实现模式,接着重点分享了Maxcompute和飞天的架构实践,包括盘古伏羲和SQL查询,最后作了简要总结。
6225 0