一.基本概念 Hive分桶: 1.概念 分桶表是对列值取哈希值的方式,将不同数据放到不同文件中存储。对于hive中每一个表、分区都可以进一步进行分桶。(可以对列,也可以对表进行分桶)由列的哈希值除以桶的个数来决定每条数据划分在哪个桶中。 2.设置 set hive.enforce.bucketing ...
分类:
其他好文 时间:
2018-01-15 00:23:45
阅读次数:
196
传送门 题目大意: 给定一个序列,维护每个数字在[L,R]出现的次数以及交换a[x]和a[x+1]的操作 一开始想的分桶法,感觉复杂度还可以吧,常数有点大,于是死得很惨(65分) 1 #include<cstdio> 2 #include<cstdlib> 3 #include<algorithm> ...
分类:
其他好文 时间:
2017-11-02 14:35:39
阅读次数:
180
一、简单聚合 桶 :简单来说就是满足特定条件的文档的集合。 指标:大多数 指标 是简单的数学运算(例如最小值、平均值、最大值,还有汇总),这些是通过文档的值来计算。 桶能让我们划分文档到有意义的集合, 但是最终我们需要的是对这些桶内的文档进行一些指标的计算。分桶是一种达到目的的手段:它提供了一种给文 ...
分类:
其他好文 时间:
2017-10-22 17:30:46
阅读次数:
217
1、基本概念 (1)桶表是对某一列数据进行哈希取值以将数据打散,然后放到不同文件中存储。 (2)在hive分区表中,分区中的数据量过于庞大时,建议使用桶。 (3)在分桶时,对指定字段的值进行hash运算得到hash值,并使用hash值除以桶的个数做取余运算得到的值进行分桶,保证每个桶中有数据但每个桶 ...
分类:
其他好文 时间:
2017-10-10 17:47:51
阅读次数:
164
题目大意:给你n个数,q个询问,每个询问问你在 l 到 r 之间的第k个数是多大。 思路:很经典的一道题,有许多种做法。 第一种:在挑战程序设计里面有介绍的分桶法。 第二种:以建立一棵线段树,每个节点维护当前区间的有序数组。 第三种:刚学的主席树,一棵普通的线段树在进行修改后是无法保存以前的线段树的 ...
分类:
其他好文 时间:
2017-10-04 17:30:50
阅读次数:
170
版权声明:本文为博主原创文章,未经博主允许不得转载 首先,先引出两点来展开下面的话题。 (1)map阶段的排序是在hash之后,写入磁盘之前进行。排序的两个关键字是partition(分区编号)和key。 (2)map结束后,并不是马上写到磁盘的,而是有个环形缓冲区,数据写到缓冲区中,默认溢出率是8 ...
分类:
编程语言 时间:
2017-09-24 11:34:10
阅读次数:
303
一、索引 简介 Hive支持索引,但是Hive的索引与关系型数据库中的索引并不相同,比如,Hive不支持主键或者外键。 Hive索引可以建立在表中的某些列上,以提升一些操作的效率,例如减少MapReduce任务中需要读取的数据块的数量。 为什么要创建索引? Hive的索引目的是提高Hive表指定列的 ...
分类:
其他好文 时间:
2017-08-24 21:17:38
阅读次数:
243
排行榜是游戏中一个常见的系统,不过要做好并不容易,比如要对全服几W名玩家做实时排行的话,性能需要花心思去优化的问题。 这里设计了一个基于桶排序的面向全服玩家的通用排行榜 一个简单的思路就是按排序的KEY的分值进行分桶,但是一个弊端就是随着游戏生命推进,会出现一个分数段类的玩家大规模集中,导致分桶失去 ...
分类:
编程语言 时间:
2017-08-05 09:58:35
阅读次数:
151
既然有一致性哈希,就肯定还有不一致哈希,为啥平时没人说不一致哈希呢?因为常见的哈希都是不一致的,所以就不修饰了,到了一致性哈希才特殊加个描述词修饰一下。 哈希一般都是将一个大数字取模然后分散到不同的桶里,假设我们只有两个桶,有 2、3、4、5 四个数字,那么模 2 分桶的结果就是: 这时我们嫌桶太少 ...
分类:
编程语言 时间:
2017-07-09 16:24:38
阅读次数:
281
给定公司NN名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。 输入格式: 输入首先给出正整数NN(\le 10^5≤10?5??),即员工总人数;随后给出NN个整数,即每个员工的工龄,范围在[0, 50]。 输出格式: 按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行 ...
分类:
编程语言 时间:
2017-06-20 11:05:56
阅读次数:
226