首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
火火99
东南大学 大数据开发工程师
发布于江苏
关注
已关注
取消关注
@三石大数据:
BitMap在数仓领域的应用【面试加分项】
推荐阅读文章列表:大数据开发面试笔记V4.0 || 面试聊数仓第一季 || 小白大数据学习路线 很多人问我:三石兄,简历没什么亮点怎么办,模型优化除了知道mapjoin,其他啥都不知道,那么这篇文章就可以成为你在面试过程中跟面试官谈论的一个亮点!!!1.背景需求:统计8月每种商品类别的购买人数select mer_type, count(distinct uid)from t -- 表t在100G左右where dt between '20230801' and '20230831'group by mer_type背景:这个任务跑了2h仍未跑出结果,就是因为count distinct在大数据量的情况下,性能巨差,于是想要使用bitmap来对其进行优化!2.技术原理2.1 BitMap2.1.1 定义BitMap的基本原理就是用一个bit来标记元素是否存在,因为仅用1个bit来存储一个数据,所以可以大大的节省空间;假设要使用BitMap来存储(1,5,1)这几个数字,如何存储呢?01234567010001002.1.2 使用场景海量数据量下求不重复的整数的个数2.1.3 代码实现以下代码可以直接运行class Bitmap: def __init__(self, size): self.size = size self.bitmap = [0] * ((size + 31) // 32) def set(self, num): index = num // 32 offset = num % 32 self.bitmap[index] |= (1 << offset) def test(self, num): index = num // 32 offset = num % 32 return (self.bitmap[index] & (1 << offset)) != 0def remove_dup(nums): bitmap = Bitmap(len(nums)) res = [] for num in nums: if not bitmap.test(num): bitmap.set(num) res.append(num) return res # 测试nums = [1,2,3,4,1,3]res = remove_dup(nums)print(res) # [1,2,3,4]2.2 RoaringBitMap2.2.1 BitMap的问题不管业务中实际的元素基数有多少,它占用的内存空间都恒定不变数据越稀疏,空间浪费越严重2.2.2 定义将数据的前半部分,即216(这里为高16位)部分作为桶的编号,将分为216=65536个桶,RBM中将这些小桶叫做container存储数据时,按照数据的高16位做为container的编号去找对应的container(找不到就创建对应的container),再将低16位放入该container中所以一个RBM是很多container的集合2.2.3 代码实现import pyroaringdef remove_dup(nums): bitmap = pyroaring.BitMap() res = [] for num in nums: if num not in bitmap: bitmap.add(num) res.append(num)# 测试nums = [1,2,3,4,1,3]res = remove_dup(nums)print(res) # [1,2,3,4]3.案例分析需求:统计8月每种商品类别的购买人数3.1 定义UDF函数import pyroaringfrom pyhive import hivedef remove_dup(nums): bitmap = pyroaring.BitMap() res = [] for num in nums: if num not in bitmap: bitmap.add(num) res.append(num) return len(res)3.2 创建UDF函数CREATE FUNCTION remove_dup(nums array) RETURNS intAS 'SELECT remove_dup(nums) FROM bitmap.py' LANGUAGE PYTHON;3.3 使用UDF函数select mer_type, remove_dup(collect_list(uid))from t -- 表t在100G左右where dt between '20230801' and '20230831'group by mer_type
点赞 8
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 15:11
Stanford University 算法工程师
刘强东再送3000万返乡年货:给老师每人10万
“过了腊八就是年”,随着春节脚步的临近,家家户户都开始置办年货。1月26日,正值腊八节,京东正式开启2026年“我给老家送年货”活动。1月26日中午,有网友发现,京东集团创始人、董事局主席刘强东再度为其老家江苏宿迁来龙镇光明村的乡亲们备上暖心的年货。据京东APP“我给老家送年货”活动页面显示,刘强东为其老家江苏宿迁来龙镇光明村的村民下单了超万件年货,既包括能识别方言的大屏AI手机、微波炉等实用的数码家电,也有米、面、油等实用商品,还贴心准备了血糖仪、筋膜枪等健康设备。据悉,今年京东还将为光明村打造一场“村晚”,并搭建AI教室、举办新春大集,开展丰富的贺新春活动。刘强东在春节前夕为家乡父老乡亲送...
点赞
评论
收藏
分享
2025-12-12 19:37
大连理工大学 后端工程师
我是傻b我是傻b
真给我气笑了😄,我投了实习僧这么多简历,结果最后才发现是在线简历,不是附件简历,亏我一直盯着实习僧,投了被hr查看了结果看的是我的在线简历,我说之前怎么有一次滴滴的面试跟kpi一样感情是拿我在线简历面的结果我有19个简历被查看的机会都被我浪费了,从九月就开始投的在线简历真绷不住了,而且滴滴它娘的投的实习僧就相当于投官网,怪不得我投了30多个一直简历筛不过去,现在hr估计都不看我的了
叁六玖:
有些求职软件发送简历友好提示一点都不友好
点赞
评论
收藏
分享
01-21 15:37
已编辑
华为_2012实验室_Java工程师
Only AI Flow Can Do!
作为骨灰级程序员,咋用 AI flow 提高编码效率 零代码基础,如何使用 AI 辅助编程工具实现自己的想法 盘点常用的 AI 辅助编程工具和使用场景 如何选择适合自己的 AI 辅助编程工具 如今的 AI flow 系列软件包括:Cursor、Bolt、v0...... 1 编码咋提效? AI flow已和我日常工作学习和创作无缝融合,使用 AI flow 写代码,体验非常流畅,编程效率大大提升。 1.1 代码补全 Tab一下,代码自动补全,各厂家有训练自己的智能补全模型,在项目工程感知上下文,给出智能代码补全建议。苦了那些只能在云桌面开发的同学,毕竟私有部署太昂贵! 以前可以叫我 cv 侠...
AI coding的好用...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
牛客吐槽大会 | 有槽不吐,留着过年?吐完领现金红包,痛快!
2057
2
...
拥抱AI,程序员的最后出路
1844
3
...
J人永远闲不下来于是去提前实习
1625
4
...
真正会被取代的,是你心里面的幻觉
1551
5
...
mentor视角下的优秀实习生
1494
6
...
马斯克最新炸裂采访,AI会带走一半工作岗位,普通人将何去何从?
1229
7
...
努力挣钱的意义具象化了
1221
8
...
大厂提前实习对AI开发的新感悟
1184
9
...
去独角兽做龙头还是去大厂做凤尾
1104
10
...
我身材再曼妙,也没有我的工资好笑!
1040
创作者周榜
更多
正在热议
更多
#
牛客吐槽大会
#
2576次浏览
60人参与
#
机械人你知道哪些单休企业
#
83027次浏览
414人参与
#
今年春招是金一银二嘛?
#
7762次浏览
100人参与
#
参加完秋招的机械人,还参加春招吗?
#
103573次浏览
684人参与
#
1月小结:你过的开心吗?
#
1768次浏览
50人参与
#
抛开难度不谈,你最想去哪家公司?
#
4042次浏览
107人参与
#
为什么有人零实习也能进大厂?
#
4828次浏览
116人参与
#
AI时代的工作 VS 传统时代的工作,有哪些不同?
#
8055次浏览
194人参与
#
没关系,至少我的__很曼妙
#
3632次浏览
63人参与
#
赚钱的意义在这一刻具象化
#
3846次浏览
93人参与
#
当你问AI“你会取代我的工作吗”,它说_?
#
3563次浏览
128人参与
#
你的第一家实习公司是什么档次?
#
4053次浏览
69人参与
#
机械人春招想让哪家公司来捞你?
#
379189次浏览
3140人参与
#
你的landing期是如何度过的?
#
8362次浏览
159人参与
#
AI求职实录
#
3243次浏览
98人参与
#
除了Java,最推荐学什么技术?
#
5550次浏览
141人参与
#
一人一道大厂面试题
#
114083次浏览
1263人参与
#
你在职场上见过哪些“水货”同事
#
30719次浏览
167人参与
#
设计人如何选offer
#
187088次浏览
864人参与
#
你觉得什么岗位会被AI替代
#
36720次浏览
255人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务