hive学习笔记之一:基本数据类型

  1. 复杂数据类型

  2. 内部表和外部表

  3. 分区表

  4. 分桶

  5. HiveQL基础

  6. 内置函数

  7. Sqoop

  8. 基础UDF

  9. 用户自定义聚合函数(UDAF)

  10. UDTF

关于hive学习笔记系列

  • 《hive学习笔记》系列保持了作者一贯的风格,即通过实战学习和了解;

  • 作为一个构建在Hadoop上的数据仓库框架,hive被用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制,hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。(来自:《Hadoop应用开发实战详解(修订版)》)

  • 架构如下,可见最终还是在执行MapReduce:

在这里插入图片描述

环境信息

本文对应的环境信息如下:

  1. CentOS Linux release 7.5.1804

  2. JDK:1.8.0_191

  3. hadoop:2.7.7

  4. hive:1.2.2

关于hive的部署

  1. 需要先部署hadoop环境,请参考《Linux部署hadoop2.7.7集群》

  2. hadoop部署成功后,安装和体验hive其参考《安装和体验hive》

数据类型简介

Hive支持基本和复杂数据类型:

  • 基本数据类型:包括数值型、布尔型、字符串类型和时间戳类型;

  • 复杂数据类型:数组、映射、结构;

基本数据类型

  • 通过思维导图来分类和理解:

在这里插入图片描述

  • 下面通过列表说明所有的基本数据类型:

| 类型 | 描述 | 示例 |

| — | — | — |

| BOOLEAN | true/false | TRUE |

| TINYINT | 1字节有符号整数,从-128到127 | 1Y |

| SMALLINT | 2字节有符号整数,从-32768到32767 | 1S |

| INT | 4字节有符号整数,从-2147483648到2147483647 | 1 |

| BIGINT | 8字节有符号整数,

从-9223372036854775808到9223372036854775807 | 1L |

| FLOAT | 4字节单精度浮点数 | 1.0 |

| DOUBLE | 8字节(64位)双精度浮点数 | 1.0 |

| DECIMAL | 任意精度有符号小数 | 1.0 |

| STRING | 无上限可变长度字符串 | ‘a’, “a” |

| VARCHAR | 可变长度字符串 | ‘a’, “a” |

| CHAR | 固定长度字符串 | ‘a’, “a” |

| BINARY | 字节数组 | - |

| TIMESTAMP | 精度到纳秒的时间戳 | ‘2020-03-01 00:00:00’ |

| DATE | 日期 | ‘2020-01-01’ |

关于三种字符串类型

  1. STRING,变长,无需最大长度声明,理论上能存储2GB字符;

  2. VARCHAR,变长,需要声明最大长度(1到65535之间),例如VARCHAR(100);

  3. CHAR,定长,如CHAR(100);

常用类型综合实战

  1. 启动hive,进入交互模式,执行以下语句建表,字段类型是常用的几种:

create table t1(

int_field INT,

string_field STRING,

boolean_field BOOLEAN,

date_field DATE,

timestamp_field TIMESTAMP

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’

STORED AS TEXTFILE;

  1. 用insert语句新增一条记录:

insert into t1

values

(101, ‘a101’, true, ‘2020-01-01’, ‘2020-03-01 00:00:00’);

  1. 使用函数,在新增的记录的时候,将timestamp_field字段设置为当前时间,注意和前面的insert语句比较一下,使用函数时必须用到select XXX from XXX limit 1这样的语法:

insert into t1

select

103, ‘a103’, true, ‘2020-01-01’, current_timestamp()

from t1 limit 1;

  1. 看一下新增的两条记录:

hive> select * from t1;

OK

101 a101 true 2020-01-01 2020-03-01 00:00:00

103 a103 true 2020-01-01 2020-10-27 20:42:35.729

Time taken: 0.062 seconds, Fetched: 2 row(s)

  1. 查看当前时间:

select unix_timestamp();

响应:

hive> select unix_timestamp();

OK

1603802631

Time taken: 0.028 seconds, Fetched: 1 row(s)

  1. 将DATE字段转为TIMESTAMP:

select cast(date_field as timestamp) from t1;

响应:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识

一线互联网P7面试集锦+各种大厂面试集锦

学习笔记以及面试真题解析

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

…(img-3NSuQZzI-1712846638063)]

一线互联网P7面试集锦+各种大厂面试集锦

[外链图片转存中…(img-w3CZX4m3-1712846638063)]

学习笔记以及面试真题解析

[外链图片转存中…(img-FaZfdPXq-1712846638063)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-73CVSsmI-1712846638064)]

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值