建设网站的功能及目的是什么意思,app下载安卓软件,淘客手机网站源码,网站服务器租用时间大数据学习
#x1f525;系列专栏#xff1a; #x1f451;哲学语录: 承认自己的无知#xff0c;乃是开启智慧的大门 #x1f496;如果觉得博主的文章还不错的话#xff0c;请点赞#x1f44d;收藏⭐️留言#x1f4dd;支持一下博主哦#x…大数据学习
系列专栏 哲学语录: 承认自己的无知乃是开启智慧的大门 如果觉得博主的文章还不错的话请点赞收藏⭐️留言支持一下博主哦 1、普通创建表
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...)
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_nameproperty_value, ...)]
关键字说明
1TEMPORARY
临时表该表只在当前会话可见会话结束表会被删除。
2EXTERNAL重点
外部表与之相对应的是内部表管理表。管理表意味着Hive会完全接管该表包括元数据和HDFS中的数据。而外部表则意味着Hive只接管元数据而不完全接管HDFS中的数据。
3data_type重点
Hive中的字段类型可分为基本数据类型和复杂数据类型。
基本数据类型如下 Hive 说明 定义 tinyint 1byte有符号整数 smallint 2byte有符号整数 int 4byte有符号整数 bigint 8byte有符号整数 boolean 布尔类型true或者false float 单精度浮点数 double 双精度浮点数 decimal 十进制精准数字类型 decimal(16,2) varchar 字符序列需指定最大长度最大长度的范围是[1,65535] varchar(32) string 字符串无需指定最大长度 timestamp 时间类型 binary 二进制数据
复杂数据类型如下 类型 说明 定义 取值 array 数组是一组相同类型的值的集合 arraystring arr[0] map map是一组相同类型的键-值对集合 mapstring, int map[key] struct 结构体由多个属性组成每个属性都有自己的属性名和数据类型 structid:int, name:string struct.id
注类型转换
Hive的基本数据类型可以做类型转换转换的方式包括隐式转换以及显示转换。
方式一隐式转换
具体规则如下
a. 任何整数类型都可以隐式地转换为一个范围更广的类型如tinyint可以转换成intint可以转换成bigint。
b. 所有整数类型、float和string类型都可以隐式地转换成double。
c. tinyint、smallint、int都可以转换为float。
d. boolean类型不可以转换为任何其它的类型。
详情可参考Hive官方说明Allowed Implicit Conversions
方式二显示转换
可以借助cast函数完成显示的类型转换
4、PARTITIONED BY重点
创建分区表
5、CLUSTERED BY ... SORTED BY...INTO ... BUCKETS重点
创建分桶表
6、ROW FORMAT重点
指定SERDESERDE是Serializer and Deserializer的简写。Hive使用SERDE序列化和反序列化每行数据。详情可参考 Hive-Serde。语法说明如下
语法一DELIMITED关键字表示对文件中的每个字段按照特定分割符进行分割其会使用默认的SERDE对每行数据进行序列化和反序列化。
ROW FORAMT DELIMITED [FIELDS TERMINATED BY char][COLLECTION ITEMS TERMINATED BY char][MAP KEYS TERMINATED BY char][LINES TERMINATED BY char][NULL DEFINED AS char]
注
fields terminated by 列分隔符collection items terminated by map、struct和array中每个元素之间的分隔符map keys terminated by map中的key与value的分隔符lines terminated by 行分隔符
语法二SERDE关键字可用于指定其他内置的SERDE或者用户自定义的SERDE。例如JSON SERDE可用于处理JSON字符串。
ROW FORMAT SERDE serde_name [WITH SERDEPROPERTIES (property_nameproperty_value,property_nameproperty_value, ...)]
7STORED AS重点
指定文件格式常用的文件格式有textfile默认值sequence fileorc file、parquet file等等。
8LOCATION
指定表所对应的HDFS路径若不指定路径其默认值为
${hive.metastore.warehouse.dir}/db_name.db/table_name
9TBLPROPERTIES
用于配置表的一些KV键值对参数。
2、Create Table As SelectCTAS建表
该语法允许用户利用select查询语句返回的结果直接建表表的结构和查询语句的结构保持一致且保证包含select查询语句放回的内容。
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name[COMMENT table_comment] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path][TBLPROPERTIES (property_nameproperty_value, ...)][AS select_statement]
3Create Table Like语法
该语法允许用户复刻一张已经存在的表结构与上述的CTAS语法不同该语法创建出来的表中不包含数据。
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name[LIKE exist_table_name][ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path][TBLPROPERTIES (property_nameproperty_value, ...)]