Hive Dynamic Partition

<Halcon> 区域划分算子partition_dynamic和partition_rectangle 区域划分算子 partition_dynamic(Region : Partitioned : Distance, Percent : ) partition_rectangle(Region : Partitioned : Width, Height : ) partition_dynamic(Region : Partitioned : Distance, Percent : ) 定义:在垂直范围较小的位置对区域进行水平分区。 使用说明:partition_dynamic将输入Region水平划分为具 阅读详情

 

2017年02月09日 13:30:11 阅读数:2139 标签: hive  更多

个人分类: hive

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/qq_26937525/article/details/54946281

简介

本文介绍Hive动态分区表的使用

作用

如果我们按天去insert分区数据,那么我们可以去指定静态分区的名称去插入数据.但是当我们不能确定分区名称时,便要使用动态分区去处理分区表.

实例

准备数据如下,为顾客数据.字段分别为id,name,orderdate.

1,jack,2016/11/11
2,michael,2016/11/12
3,summer,2016/11/13
4,spring,2016/11/14
5,nero,2016/11/15
6,book,2016/12/21
7,node,2016/12/22
8,tony,2016/12/23
9,green,2016/12/24
10,andy,2016/12/25
11,kaith,2016/12/26
12,spring,2016/12/27
13,andy,2016/12/28
14,tony,2016/12/29
15,green,2016/12/30
16,andy,2016/12/31
17,kaith,2017/1/1
18,xiaoming,2017/1/2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

我们把数据放入一张名为t_temp的表中.

create table t_temp(id int,name string,orderdate string)
row format delimited
fields terminated by ',';

load date local inpath '/home/spark/jar/testdata/Customer.txt' into table t_temp;
  • 1
  • 2
  • 3
  • 4
  • 5

然后建立分区表t_part

create table if not exists t_part
(id int ,name string ,orderdate string)
partitioned by (year string,month string)
row format delimited 
fields terminated by ',';
  • 1
  • 2
  • 3
  • 4
  • 5

我们使用静态分区可能会执行如下的语句插入数据:

insert into t_part partition(year = '2016',month = '12')
select id,name,orderdate from t_temp
where substring(orderdate,1,7) = '2016/12'
  • 1
  • 2
  • 3

当分区数少的时候,我们可以采用这种方式去insert数据.当分区数过多或者分区名称未知时,我们需要去使用动态分区.

hive参数配置

在使用动态分区之前,我们要进行一些参数的配置.

hive.exec.dynamic.partition

默认值:false

是否开启动态分区功能,默认false关闭。

使用动态分区时候,该参数必须设置成true;

hive.exec.dynamic.partition.mode

默认值:strict

动态分区的模式,默认strict,表示必须指定至少一个分区为静态分区,nonstrict模式表示允许所有的分区字段都可以使用动态分区。

一般需要设置为nonstrict

hive.exec.max.dynamic.partitions.pernode

默认值:100

在每个执行MR的节点上,最大可以创建多少个动态分区。

该参数需要根据实际的数据来设定。

比如:源数据中包含了一年的数据,即day字段有365个值,那么该参数就需要设置成大于365,如果使用默认值100,则会报错。

hive.exec.max.dynamic.partitions

默认值:1000

在所有执行MR的节点上,最大一共可以创建多少个动态分区。

同上参数解释。

hive.exec.max.created.files

默认值:100000

整个MR Job中,最大可以创建多少个HDFS文件。

一般默认值足够了,除非你的数据量非常大,需要创建的文件数大于100000,可根据实际情况加以调整。

hive.error.on.empty.partition 
默认值:false

当有空分区生成时,是否抛出异常。

一般不需要设置.

在设置完这些参数之后,我们可以执行如下的insert指令去使用动态分区

set hive.exec.dynamic.partition = true;
set hive.exec.dynamic.partition.mode = nonstrict;
insert overwrite table t_part partition(year,month)
select id,name,orderdate,substring(orderdate,1,4),substring(orderdate,6,2) from t_temp;
  • 1
  • 2
  • 3
  • 4

执行结果如下:

Loading data to table test_neil.t_part partition (year=null, month=null)
     Time taken for load dynamic partitions : 651
    Loading partition {year=2016, month=12}
    Loading partition {year=2017, month=01}
    Loading partition {year=2016, month=11}
     Time taken for adding to write entity : 1
Partition test_neil.t_part{year=2016, month=11} stats: [numFiles=1, numRows=5, totalSize=97, rawDataSize=92]
Partition test_neil.t_part{year=2016, month=12} stats: [numFiles=1, numRows=11, totalSize=210, rawDataSize=199]
Partition test_neil.t_part{year=2017, month=01} stats: [numFiles=1, numRows=2, totalSize=43, rawDataSize=41]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

我们可以去查看这张表的分区情况:

show partitions t_part;
  • 1

显示分区的情况如下:

partition
year=2016/month=11
year=2016/month=12
year=2017/month=01
year=__HIVE_DEFAULT_PARTITION__/month=__HIVE_DEFAULT_PARTITION__
  • 1
  • 2
  • 3
  • 4
  • 5

注意:

  • 动态分区在insert数据的时候,分区字段要放在插入字段的最后面,同时要和指定的分区字段的顺序一致.
Halcon中partition_dynamic(Operator)算子原理及应用详解 Halcon常用算子解析 阅读详情

相关推荐

自适应滤波算法综述

自适应滤波算法综述

xdzhujy的博客 5万+

hive-动态分区Dynamic Partition

com 往分区表插数据时,需要指定分区。这样一次只能插入一个分区。 如果插入数据分散在多个分区中,就要通过动态分区功能,自动创建分区并填充。 参数配置 在使用动态分区之前,我们要进行一些参数的配置. hive.exec.dynamic.partition 默认值:false 是否开启动态分区功能,默认false关闭。 使用动态分区时候,该参数必须设置成true; hive.exec.dynamic.partition.mode 默认值:strict 动态分区的模式,默认strict,表示必须指定至少一个分区

DCHAO的博客 9451

微信支付开发之平台给用户转账到零钱的功能

请求消息中应包含商家批次单号、转账名称、appid、转账总金额、转账总笔数、转账openid、收款用户姓名等信息。批次已受理成功,若发起批量转账的30分钟后,转账批次单仍处于该状态,可能原因是商户账户余额不足等。【转账场景ID】 该批次转账使用的转账场景,如不填写则使用商家的默认场景,如无默认场景可为空,可前往“商家转账到零钱-前往功能”中申请。【转账总笔数】 一个转账批次单最多发起一千笔转账。【商家批次单号】 商户系统内部的商家批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一。

程序员weixin_sodomany的博客 3455

Hive的分区(partition)-动态分区

Hive的分区 一、概述 分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描其他不关心的分区,快速定位,提高查询效率。hive中支持两种类型的分区: 静态分区SP(static partition) 动态分区DP(dynamic partition) 静态分区与动态分区的主要区别在于静态分区是手动指定...

shammy_feng的博客 2万+

ARS408毫米波雷达数据解析避坑指南:从硬件连接到Python处理

本文提供了ARS408毫米波雷达从硬件连接到Python数据处理的完整实战指南。针对串口通信不稳定、数据解析错误等常见问题,详细解析了硬件连接方案选择、串口数据高效读取策略、二进制协议解析的位操作技巧,并给出了坐标转换、目标跟踪及实时可视化的代码实现,帮助开发者快速搭建稳定的雷达数据处理流水线。

weixin_29091105的博客 151

AXI4接口说明

ACLK:全局AXI接口时钟输入(建议与系统时钟保持一致)ARESET_n:全局AXI接口复位信号,低电平有效。PS:在HBM AXI接口应用中,此复位端口仅应在数据传输开始前使用。若在传输开始后使用,会导致AXI接口与内存控制器失步(out-of-sync)。当开关启用时,IP核会将所有ARESET_n引脚内部连接在一起——因为内存作为一个整体工作。

rhtul的博客 1522

Hive动态分区(Dynamic Partition)导致的内存问题

Hive动态分区(Dynamic Partition)导致的内存问题 默认hive.optimize.sort.dynamic.partition是false,hive进行动态分区的时候,可以看见一直在 FileSinkOperator: New Final Path导致内存中保存太多句柄和数据,导致OOM或者内存超被Yarn Kill。开启下面的参数可以缓解内存压力。 hive.optimize...

cold__v__moon的专栏 5015

Python爬取腾讯视频m3u8加密流实战(附完整代码)

本文提供了一份详细的Python实战教程,指导如何通过抓包分析、模拟请求头与载荷,破解腾讯视频的m3u8加密流防盗链机制,并附上完整代码实现视频片段的下载与合并。教程涵盖从侦察到代码实现的完整流程,并包含参数动态化、多线程下载等高级技巧与避坑指南,旨在帮助开发者掌握流媒体下载的核心技术。

weixin_29090089的博客 1623

hive Dynamic partition strict mode requires at least one static partition column解决

报错: FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict 1、解决方案: set hive.exec.dynamic.partition.mode=nonstrict; 2、重新执行:

zhangjunli的博客 732

RAID 0/1/5/10 性能实测:4块 SATA SSD 组阵列,顺序读写速度对比

本文通过实测对比了RAID 0/1/5/10在4块SATA SSD上的顺序读写性能,详细展示了不同RAID级别的配置方法、理论性能与实际测试数据。测试结果显示,RAID 0在顺序读写速度上表现最佳,而RAID 10则在性能与数据安全之间取得了平衡,适合数据库服务器等关键应用场景。

weixin_33462167的博客 426

C# 接口和抽象类

文章目录1. 什么是接口和抽象类2. 接口与单元测试3. 依赖&耦合4. 依赖翻转5. 单元测试 1. 什么是接口和抽象类 接口和抽象类都是“软件工程产物” 具体类->抽象类->接口:越来越抽象,内部实现的东西越来越少 抽象类是未完全实现逻辑的类(可以有字段和非public成员,它们代表了“具体逻辑”) 抽象类为复用而生:专门作为基类来使用,也具有解耦功能 封装确定的,开放不确定的,推迟到合适的子类中去实现 接口是完全未实现逻辑的“类”(“纯虚类”;只有函数成员;成员全部publi

汽车电子软件领域知识分享 1015

hive动态插入数据SemanticException [Error 10096]: Dynamic partition strict mode requires at least one stati

FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict 解决: set hive.exec....

M10F的博客 3329

YOLOv8交通管理 详细解释及代码完整示例

YOLOv8在交通管理中的应用及代码实现 摘要:本文详细介绍了YOLOv8在交通管理领域的应用场景,包括车辆检测、违规行为识别和行人安全预警等。文章提供了完整的Python代码示例,展示了如何使用YOLOv8进行交通对象检测和车辆计数统计。代码包含模型加载、对象检测、结果可视化等功能模块,并给出了性能优化和功能扩展建议。该实现基于Ultralytics框架,支持多种YOLOv8模型选择,可根据实际需求调整模型大小和检测参数。

u010117029的博客 153

在hive中把查询出来的数据导入数据表时报FAILED: SemanticException [Error 10096]: Dynamic partition strict mode...

报错如下: hive (sdw_data)> insert overwrite table SDW_DATA.SDW_LOAN_DK > partition(LN_DB_PART_ID)select * from SDA_DATA.SDA_CBOD_LNLNSLNS ; FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one stat

森屿旅人996的博客 2507

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

spark 设置hive.exec.max.dynamic.partition不生效

spark脚本和程序中设置ive.exec.max.dynamic.partition不生效。

mrye的博客 908

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

hive.exec.dynamic.partition.mode

hive 动态分区

qq_45653759的博客 6571

在hive中查询导入数据表时FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at lea...

当我们出现这种情况时 FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict 这时候我们...

weixin_30586085的博客 2739

hive分区:Dynamic partition strict mode requires at least one static partition column.

datagrip操作hive遇到如下问题。表示分区需要设置成不严格模式。执行以下语句可以解决。

qkxkpk2754373303的博客 222

Hive向分区表插入数据时报错(Dynamic partition strict mode requires at least one static partition column. )

   最近在使用Hive复制分区表时报错。    计划首先创建一张和word_count_temp一样表结构的表word_count,然后使用动态分区的方法把数据导入。 创建表的sql如下: create table word_count like word_count_temp; 向新建的分区表插入数据的sql: insert overwrite table wins.`word_count ` PARTITION(p_y,p_ym,p_ymd) select * from wins.`word_cou

LYY1448019681的博客 8467

hive dynamic partition的使用

参考链接:http://www.cnblogs.com/xd502djj/archive/2013/12/11/3470074.html 语句参考: set hive.exec.dynamic.partition=t...

csdn19011的博客 592

hive 动态分区(Dynamic Partition)异常处理 [Error 20004]

在hive中创建动态分区,将数据导入的过程中,出现的问题: 数据导入失败 FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 这个问题主要原因就是动态分区的数量没有达到要求,应该分区的数量设置多一些 Your Hive job tried to create ...

iilegend的博客 1565

hive 动态分区(Dynamic Partition)异常处理

Changing Hive Dynamic Partition Limits Symptoms: Hive enforces limits on the number of dynamic partitions that it creates.  The default is 100 dynamic partitions per node, with a total (default)

数据之路 1万+

Hive 分区表 动态分区开启 创建 hive.exec.dynamic.partition=true;

参考:https://blog.youkuaiyun.com/afafawfaf/article/details/80249974 1.分区表 还可以创建二级分区:PARTITIONED BY (event_month string, step string) 创建分区表: CREATE TABLE order_created_partition ( order_number STRING , event_timeSTRING ) PARTITIONED BY (event_month ...

是个好男人的博客 6679
上一篇: 本文使用Imply套件安装,该套件提供了稳定的druid和web访问接口,在安装之前需要先安装node,
下一篇: Hive-JSON 原始数据映射 Hive 表结构
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值