hive数据类型和创建表

1.基本类型

hive基本数据类型
  • 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数。

2.集合数据类型

微信截图_20230518200528.png
  • Hive有三种复杂数据类型ARRAY、MAP 和 STRUCT。ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套。
3.案例实操
  1. 假设某表有如下一行,我们用JSON格式来表示其数据结构。在Hive下访问的格式为
{
    "name": "songsong",
    "friends": ["bingbing" , "lili"] ,       //列表Array, 
    "children": {                      //键值Map,
        "xiao song": 19 ,
        "xiaoxiao song": 18
    }
    "address": {                      //结构Struct,
        "street": "hui long guan" ,
        "city": "beijing" 
    }
}
  1. 基于上述数据结构,我们在Hive里创建对应的表,并导入数据。
  • 创建本地测试文件test.txt
  songsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijing
  yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing
  1. Hive上创建测试表test
create table test(
 name string,
friends array<string>,
children map<string, int>,
address struct<street:string,city:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';


\\  row format delimited fields terminated by ','  -- 列分隔符
\\ collection items terminated by '_'   --MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)
\\ map keys terminated by ':'           -- MAP中的key与value的分隔符
\\ lines terminated by '\n';                -- 行分隔符
\\ STORED AS TEXTFILE;                 ----保存为textfile格式
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容