(九)hive动态分区

16 篇文章 0 订阅

动态分区

 

 

create table cost_dynamic_partition(

 

input_time string,

money double

)

partitioned by (name string)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

动态分区 分区字段不能再 表中存在

得把name去掉

动态分区列必须在SELECT语句的列中最后指定,并且与它们在PARTITION()子句中出现的顺序相同。

SemanticException [Error 10035]: Column repeated in partitioning columns

load data local inpath '/root/cost.txt' overwrite into table cost_dynamic_partition

SemanticException [Error 10062]: Need to specify partition columns because the destination table is partitioned直接加载报错

insert into table cost_dynamic_partition PARTITION (name)

select name,input_time ,money from cost;

 

 

还得设置 set hive.exec.dynamic.partition.mode=nonstrict

Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict

ParseException line 1:0 cannot recognize input near 'nsert' 'into' 'table'

分区字段得写在最后

insert overwrite table cost_dynamic_partition PARTITION (name)

select input_time ,money,name from cost;

insert overwrite table cost_dynamic_partition PARTITION (name)

select input_time ,money,name as name from cost;

查询报错

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask.

发现是mysql字符集问题 mysql 分区相关字段的字符集是latin1  不支持中文 需要设置utf-8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值