HIve SQL-DDL语句初掌握-DDL语句常见的问题和解决方法

        本篇主要讲的是HQL DDL语言。

        DDL数据定义语言主要是针对表的。其重要程度直接关系到表和文件能否映射成功。

        主要讲以下几点。

        1.建表语句-表存在忽略异常。

--第一次建表
create table t(
id int,
name string,
age int
);
--当再次执行建表语句时就会报错
Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. AlreadyExistsException(message:Table t already exists) (state=08S01,code=1)
--如果建表时加上 if not exists则会忽略异常。

        2.建表语句数据类型。

  1. hive除了支持SQL数据类型外还支持java数据类型。
  2. 除了支持基础数据类型外还支持复合数据类型(array数组和map映射)。
  3.  在建表时表的字段类型和文件的类型要保持一致,如果不一致,hive会尝试隐式转换,如果转换失败则会显示null。

        3.建表时分割符指定语法。

语法格式:
ROW FORMAT DELIMITED | SERDE

ROW FORMAT DELIMITED  表示使用LazySimpleSerDe类进行序列化解析数据
 
ROW FORMAT SERDE      表示使用其他SerDe类进行序列化解析数据

ROW FORMAT DELIMITED具体的子语法。
row format delimited
[fields terminated by char]  #指定字段之间的分隔符
[collection items terminated by char]  #指定集合元素之间的分隔符
[map keys terminated by char]         #指定map类型kv之间的分隔符
[lines terminated by char]            #指定换行符

例如:
create table t(
id int,
name string,
win_rate int,
skin_price map<string,int>
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':';

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值