Hive建表、常用语法、遇到的问题总结

本文总结了Hive的基本数据类型和复合数据类型,包括STRING、INT、BOOLEAN、DATE等,并介绍了STRUCT、MAP和ARRAY的使用。此外,讲解了Hive建表语句、常用的函数如CASE WHEN、ROW_NUMBER() OVER (PARTITION BY)以及处理数据去重的方法。还分析了在LEFT/RIGHT JOIN中如何避免数据膨胀的问题。
摘要由CSDN通过智能技术生成

一、hive常见字段类型总结

1.基本数据类型

1、字符串:string 对长度没有限制
2、数值类型:

  • INT :4字节带符号整数,取值范围-2,147,483,648 to 2,147,483,647
  • BIGINT:8字节带符号整数,取值范围-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
  • FLOAT:4字节单精度浮点数
  • DOUBLE:8字节双精度浮点数
  • DECIMAL:17字节,如DECIMAL(9,8)代表最多9位数字,后8位是小数。此时也就是说,小数点前最多有1位数字,如果超过一位则会变成null。

3、 布尔类型:BOOLEAN true、false #生产用1/0代替

4、时间日期类型

  • DATE: yyyy-MM-dd格式

  • TIMESTAMP:支持传统的UNIX timestamp,可以达到纳秒精度,支持的string、int的转换

2.复合数据类型

1、STRUCT :相当于python的字典(确定键的)、Scala中的case class。可以自己再创建表时配置,如下

  • hive中 student struct< id: string, name: string, age: int >
  • python中 student ={id:xxx,name:xxxx,age:xxx}
  • Scala中 case class student( id: String= “”, name: String = “”,age: Int=0)

可以通过"点"符号访问元素内容。如可以进行查询 select student.id from table_name 只查看id列

2、MAP 一组键-值对元素集合,使用key可以访问元素。

  • score map<string,int>

可以将 ‘数学’:80,‘语文’:89,‘英语’:95 插入至其中。同时可以通过 select score[“语文”] from table_name 查看全部键为语文的值。创建map时需要指定分隔符如: collection items terminated by ‘,’ map keys terminated by ‘:’;

3、ARRAY 列表、数组

  • city array<string,>
    可以插入这种数据changchu,chengdu,wuhan。可以根据索引查询,如:select score[0] from table_name。
    创建array时也需要指定分隔符COLLECTION ITEMS TERMINATED BY ‘,’;

这些符合类型也可以相互结合使用,如array<struct< id: string, name: string, age: int >>,即是一个学生信息的字典组成的列表

二、hive建表语句

create table ${table_name} (
字段名1 字段类型,
字段名2 字段类型,
.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值