Hive
Hive
长行
这个作者很懒,什么都没留下…
展开
-
Hive|pyhive 在同一个集群的多个 Hive Server 之间负载均衡
因此,我们只能在每次创建 Hive 连接时,通过在多个 Hive Server 中随机选择一个,来模拟实现 Hive Server 的负载均衡。参数类似 Kafka 集群时的逗号或其他符号分隔多个节点的写法。显然,这样的实现方法不可能支持。查看 pyhive 的。原创 2024-02-22 14:09:39 · 437 阅读 · 0 评论 -
Hive|Hive 随机抽样方法(TABLESAMPLE 方法、随机数方法)
获取的 20 行和不加该字句获得的前 20 行相同,怀疑可能就是抽取 HDFS 文件中从前往后获取到满足指定条件的行数。也可能是我的使用方法有问题,如有更优方法欢迎指出。最简单的随机抽样,就是将所有给所有记录添加一个随机数,然后排序筛选其中最小的目标条数即可。在 Hive 中,对于。但是,经过以上语句测试,这个语法似乎不是随机抽样,我发现使用。字句用于从 Hive 中抽取样本数据。是有优化的,不会出现全量排序导致数据倾斜的问题。中随机抽取 1000 条样本数据。原创 2024-01-19 13:06:40 · 1136 阅读 · 0 评论 -
Hive|数据倾斜产生原因及处理方法
因为在读数据时,通常一个 task 负责一个或多个 HDFS 中的文件,而 HDFS 中的文件大小通常相对均匀,所以以 HDFS 为上游(即以 HadoopRDD 为第一个 operator)的 stage 通常不会出现数据倾斜。在 Spark SQL 中,上游 stage 的最后一个算子不限(通常为 mapPartitions),下游 stage 的第一个算子通常为 groupByKey 算子。因此,大部分数据倾斜的场景,都出现在计算过程中的重分区之后的 stage。原创 2024-01-09 23:36:38 · 979 阅读 · 0 评论 -
Hive|INSERT OVERWRITE 同时复制多个分区
如果新表还没有被创建,则需要获取旧表的建表语句,并根据旧表的建表语句创建新表。|因为我们需要动态的创建分区,所以需要在插入前需要将。|验证新表目标分区的记录数与旧表是否一致。语句,指定动态分区写入多个分区的数据。非严格模式,令所有分区都是动态的。中多个分区中的数据,复制到新表。原创 2024-01-08 22:45:19 · 620 阅读 · 0 评论 -
Hive|使用添加随机数避免 GROUP BY 数据倾斜的方法
虽然在第二次聚合时,数据仍然倾斜,但是因为在第一次聚合后,数据量已经极大减少,所以纵使仍然存在倾斜但也不会太慢。字段进行第一次聚合统计,在这次聚合时,因为随机数的存储,可以保证之前处理数据量最大的 Task 会被拆分为 100 份,随机分配到其他的 Task 中,环节了数据倾斜;进行第一次聚合统计,在这次聚合中,最大的 Task 也只会包含 100 个任务,数据倾斜也不会很严重。聚合时,负责处理 1 和 2 的任务会被分配到绝大部分的任务,数据倾斜非常严重。字段的一次聚合,改为两次聚合。原创 2023-12-19 18:41:41 · 611 阅读 · 0 评论 -
Hive|转义符规则整理
在 Hive 正则表达式中,该字符串首先会被 Java 语法解析一次,然后又会被正则表达式解析一次。因此,如果需要在 Hive 的正则表达式中添加。因为 Hive 使用 Java 语法来解析和处理字符串,所以同 Java 的字符串一样,如果要在 Hive 的字符串中添加。(Java 解析后的字符串)视作转义符,所以如果需要在正则表达式中添加。都需要时 Java 语法解析后的字符串中的。在正则表达式中,因为会将字符串中的。实现两层自身转义,即。,则需要使用 4 个。测试字符\\测试字符。原创 2023-12-14 15:37:13 · 1165 阅读 · 0 评论