1. 基本数据类型
tinyint , smallint, int, bigint, float, double, boolean: true/false, string
2. 基础运算符与函数
A IS NULL 空
A IS NOT NULL 非空
A LIKE B 模糊匹配
A RLIKE B 正则表达式匹配
A REGEXP B 正则表达式匹配
3. 类型转换
cast(expr as <type>)
例如:
cast('1' as BIGINT) 将字符串'1'转化成bigint型
4. 日期函数
返回值类型 名称 描述
string from_unixtime(int unixtime) 将时间戳(unix epoch秒数)转换为日期时间字符串,例如from_unixtime(0)="1970-01-01 00:00:00"
bigint unix_timestamp() 获得当前时间戳
bigint unix_timestamp(string date) 获得date表示的时间戳
bigint to_date(string timestamp) 返回日期字符串,例如to_date("1970-01-01 00:00:00") = "1970-01-01"
string year(string date) 返回年,例如year("1970-01-01 00:00:00") = 1970,year("1970-01-01") = 1970
int month(string date)
int day(string date) dayofmonth(date)
int hour(string date)
int minute(string date)
int second(string date)
int weekofyear(string date)
int datediff(string enddate, string startdate) 返回enddate和startdate的天数的差,例如datediff('2009-03-01', '2009-02-27') = 2
int date_add(string startdate, int days) 加days天数到startdate: date_add('2008-12-31', 1) = '2009-01-01'
int date_sub(string startdate, int days) 减days天数到startdate: date_sub('2008-12-31', 1) = '2008-12-30'
5. 条件函数
返回值类型 名称 描述
- if(boolean testCondition, T valueTrue, T valueFalseOrNull) 当testCondition为真时返回valueTrue,testCondition为假或NULL时返回valueFalseOrNull
- COALESCE(T v1, T v2, ...) 返回列表中的第一个非空元素,如果列表元素都为空则返回NULL
- CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END a = b,返回c;a = d,返回e;否则返回f
- CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END a 为真,返回b;c为真,返回d;否则e
例如:
(
case
when category = '1512' then reserve_price > cast(1000 as double)
when category = '1101' then reserve_price > cast(2500 as double)
else reserve_price > cast(10 as double)
end
)
6. 常用字符串函数
返回值类型 名称 描述
int length(string A) 返回字符串长度
string reverse(string A) 反转字符串
string concat(string A, string B...) 合并字符串,例如concat('foo', 'bar')='foobar'。注意这一函数可以接受任意个数的参数
string substr(string A, int start) substring(string A, int start) 返回子串,例如substr('foobar', 4)='bar',详见 [4]
string substr(string A, int start, int len) substring(string A, int start, int len) 返回限定长度的子串,例如substr('foobar', 4, 1)='b',详见[5]
string upper(string A) ucase(string A) 转换为大写
string lower(string A) lcase(string A) 转换为小写
string trim(string A)
string ltrim(string A)
string rtrim(string A)
string regexp_extract(string subject, string pattern, int intex) 返回使用正则表达式提取的子字串。
例如,regexp_extract('foothebar', 'foo(.*?)(bar)', 2)='bar'。注意使用特殊字符的规则:
使用'\s'代表的是字符's';空白字符需要使用'\\s',以此类推。
string space(int n) 返回一个包含n个空格的字符串
string repeat(string str, int n) 重复str字符串n遍
string ascii(string str) 返回str中第一个字符的ascii码
string lpad(string str, int len, string pad) 左端补齐str到长度为len。补齐的字符串由pad指定。
string rpad(string str, int len, string pad) 右端补齐str到长度为len。补齐的字符串由pad指定。
array split(string str, string pat) 返回使用pat作为正则表达式分割str字符串的列表。例如,split('foobar', 'o')[2] = 'bar'。
7. 创建表
CREATE TABLE IF NOT EXISTS table_name
(
--field def
)
PARTITIONED BY (pt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '...';
注意:如果不是外表部,drop table的时候会将HDFS上文件删除。
8. 创建外部表
CREATE EXTERNAL TABLE dm_all_cpv_assoc (
--field def
)
PARTITIONED BY (pt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\1' 字段分隔符
LINES TERMINATED BY '\2' 行分隔符
STORED AS TEXTFILE
LOCATION '...';
注意:在删除外部表的时候,不会删除HDFS上的关联文件。
9. 添加分区
ALTER TABLE table_name ADD PARTITION (dt='2008-08-08', country='us')
location '/path/to/us/part080808' PARTITION (dt='2008-08-09', country='us')
location '/path/to/us/part080809';
10. 删除分区
ALTER TABLE table_name DROP PARTITION (dt='2008-08-08', country='us');
11. 导入数据
a. insert overwrite table table_name partition (pt = '20110323000000')
select ... from ...
b. LOAD DATA LOCAL INPATH 'test.dat' OVERWRITE INTO table yahoo_music partition (pt=xxx);
12. 查询数据
SELECT, JOIN, LIMIT
13. 添加UDF
add jar /home/hive/jar/my_udf.jar;
create temporary function sys_date as 'com.taobao.hive.udf.UDFDateSysdate';
14. 设置reducer数量
限制最大reducer数:set hive.exec.reducers.max=15;
设置固定的reducer数:set mapred.reduce.tasks=15;
分享到:
相关推荐
1. 将下载的Hive压缩包解压到指定目录,例如:/usr/local/hive。 2. 配置环境变量,在~/.bashrc或~/.bash_profile文件中添加以下内容: ``` export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin ```...
"HIVE安装及详解" HIVE是一种基于Hadoop的数据仓库工具,主要用于处理和分析大规模数据。下面是关于HIVE的安装及详解。 HIVE基本概念 HIVE是什么?HIVE是一种数据仓库工具,主要用于处理和分析大规模数据。它将...
标题“hive1_2_1jars.zip”指的是一个包含Hive 1.2.1版本相关库的压缩文件,这些库可能用于支持Spark 3.x版本与Hive的交互。在Spark 3中,如果你需要连接到Hive元存储进行数据操作,你需要正确配置Spark的`spark.sql...
在大数据处理领域,Apache Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)查询存储在Hadoop集群中的大型数据集。Hive JDBC(Java Database Connectivity)是Hive提供的一种...
以下是关于Hive基本操作的详细说明: 1. **创建数据库**: 使用`CREATE DATABASE`语句可以创建新的Hive数据库。例如,`CREATE DATABASE DB`将创建一个名为DB的新数据库。如果希望避免因数据库已存在而引发的错误,...
使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...
1. **hive-exec.jar**:包含Hive执行引擎的核心类,用于执行HQL查询。 2. **hive-jdbc.jar**:提供Hive的JDBC驱动,使你能通过JDBC接口连接到Hive服务器。 3. **libthrift.jar**:Thrift库,Hive使用的RPC框架,用于...
1. **版本兼容性检查**:首先,确保你的 Ambari 版本与 Hive 4.0 兼容。通常,Ambari 的新版本会支持更高级的 Hadoop 和 Hive 组件。检查 Ambari 官方文档以确认兼容性。 2. **备份现有环境**:在进行任何重大更新...
1. 下载驱动:首先,你需要从官方源或可靠的第三方网站下载"hive-jdbc-uber-2.6.5.0-292.jar"驱动包,确保版本与你的Hive服务器兼容。 2. 添加驱动:在DBeaver中,选择“工具”-> "数据库" -> "驱动管理器",点击右...
1. **Hive驱动介绍** Hive提供了JDBC驱动,使得我们可以通过Java应用程序或IDE(如DataGrip)连接到Hive服务。Hive的JDBC驱动通常包含在名为`hive-jdbc`的JAR包中,这个包包含了与Hive通信所需的全部类和接口。 2....
1. **Hive Client**:这是连接到Hive服务器并执行查询的客户端接口。它包含了HQL解析器、编译器和执行器,使得开发者可以通过编写Java代码或者使用命令行工具与Hive交互。 2. **Hive Metastore**:这部分jar包用于...
**SpringBoot整合Hive-JDBC详解** 在大数据处理领域,Hadoop生态中的Hive作为一个数据仓库工具,常常用于处理大规模的数据分析任务。而SpringBoot作为Java开发中的微服务框架,以其简洁的配置和快速的开发能力深受...
Hive表生成工具,Hive表生成工具Hive表生成工具
在大数据处理领域,Hive是一款基于Hadoop的数据仓库工具,它允许用户使用SQL类的语言(称为HQL)来查询、管理、分析存储在Hadoop分布式文件系统中的大规模数据集。而DataGrip是一款由JetBrains公司开发的强大数据库...
1. 调整 Hive 的 reducer 个数,设置 set hive.exec.reducers.max=200; 2. 调整 Hive 的 map 任务个数,设置 set mapred.map.tasks= 200; 3. 调整 Hive 的 group by 操作的键对应的记录条数,设置 set hive.groupby....
1. **数据模型**:Hive 支持两种主要的数据存储结构——表(Table)和分区(Partition)。表是数据的基本单位,可以看作是关系数据库中的表格。分区则是对大表进行逻辑上的划分,通过将数据按特定字段值进行分类,...
《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第...
1. **直接执行Hive SQL脚本** 可以使用`os`模块的`popen`函数直接执行存储在本地的.sql文件。例如: ```python import os hive_cmd = "hive -f ./sql.sql" output = os.popen(hive_cmd) data_cart_prop = ...
1. 用户向Hive提交查询请求。 2. 编译器接收到查询后,从Hive Metastore中获取相关的元数据。 3. 查询经过编译器处理,首先转换为抽象语法树(AST),接着转换为查询块,进一步转化为逻辑查询计划,最后转换为物理...
当我们需要在DataGrip中连接到Hive 1.x版本时,会遇到一些必要的依赖问题,因为DataGrip本身可能不包含所有必需的JAR文件来与特定版本的Hive通信。本文将详细讨论如何准备和配置这些JAR包以实现Hive 1.x与DataGrip的...