hive建表语句
因为用mr对hdfs进行操作比较繁琐,所以才出现了hive。 hive本质上进行操作的还是hdfs文件,而不是表。 所以在一些地方,为了迎合hdfs文件,与sql语言有些许的不同。比如在建表方面的不同,在一些函数上的不同等。
参考: Hive学习3:Hive三种建表语句详解
在建表时,要通过语法,将HDFS上的文件映射成表结构。所以在建表时与sql上有些许不同。
不过,建立好表以后,已经映射成表结构,那么操作就跟sql很相似了。
其中,映射过程中会有参数row format(行的格式) 和 file format(文件的格式) 两个参数。
row format 表示的是行在存储时的序列化 与 反序列化 的规则。一般后面都是定好了默认参数的。需要的时候再改。
比如,给表定好了,列按照逗号分割,某个字段按照“-”分割,map型字段按照“:”分割。
这样订好了形式以后,就能够让系统比较合理的进行序列化与反序列化了
表示hdfs文件存放的格式,默认是TEXTFILE,文本格式,可以直接打开。
按照参考的网页,建表。注意,建表的时候,已经指明了各个字段的类型,所以在进行分割的时候就很容易了。
参考: Hive的数据存储
元数据,是用来描述数据的数据。 表中的数据,比如,25,31是数据。而元数据中,元数据“年龄”就是用来描述25,31的。所以说,元数据是这种用来描述数据的数据。
在hive中
区别:
建立外部表(这里t2 被external所修饰了)
'''
create external table t2(
id int
,name string
,hobby array<string>
,add map<String,string>
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
location '/user/t2'
;
'''
将子查询的结果存在新表里,表中有数据 。通过as查询语句完成建表。
例子:
创建结构完全相同的表,但是没有数据。
例子:
create table t4 like t2;
2024-11-30 广告