hive的sql学习笔记一

这篇博客介绍了Hive SQL的基础操作,包括创建表、删除表、split函数、正则表达式、读取JSON、字符串替换、日期函数、字符串拼接、截取、between函数,以及数据类型转换等。同时,讨论了如何使用LIKE、视图、lateral view、explode()和coalesce()函数,提供了丰富的示例。
摘要由CSDN通过智能技术生成

1,创建表:
mysql里是with as
hive创建表有三种方式:(详情可见csdn的收藏)
hive里是create table default.temp as (select * from)
create table if not exists table as 也可以不加括号。

   hive创建临时表:
       表只对当前session有效,session退出后,表自动删除。
       语法:

      CREATE TEMPORARY TABLE ...

2,删除表
drop table if exists cookie1;
3,hive里的split函数。
select split(‘ab_cd_ef’, ‘_’)[0] from test;
会返回分割后的字符串数组
4,hive的正则表达式:
regexp_extract(str, regexp, idx)
str是被解析的字符串或字段名
regexp 是正则表达式
idx是返回结果 取表达式的哪一部分 默认值为1。

0表示把整个正则表达式对应的结果全部返回

1表示返回正则表达式中第一个() 对应的结果 以此类推
5,hive读取json字符串
get_json_object(string json_string, string path)
第一个参数填写json对象变量,第二个参数使用$表示json变量标识,然后用 . 或 [] 读取对象或数组;如果输入的json字符串无效,那么返回NULL。
每次只能返回一个数据项。
6,hive的替换字符串:
REPLACE ( string_replace1 , string_replace2 , string_replace3 )

参数解析:
string_replace1 待搜索的字符串表达式。string_replace1 可以是字符数据或二
进制数据
string_replace2 待查找的字符串表达式。string_replace2 可以是字符数据或二
进制数据。
string_replace3 替换用的字符串表达式。string_replace3 可以是字符数据或二
进制数据。
字符串类型参数:
 SELECT REPLACE('abcdefg bcd','bcd','xxx')

结果为:axxxefg xxx
7,hive的替换函数还有:
regexp_replace函数。
8,hive的日期函数(详细见csdn).
日期时间转日期函数: to_date
语法: to_date(string timestamp)
返回值: string
说明: 返回日期时间字段中的日期部分。
举例:
hive> select to_date(’2011-12-08 10:03:01′) from dual;
2011-12-08.

9,hive的字符串拼接函数(具体见csdn)。
CONCAT()函数用于将多个字符串连接成一个字符串。

10,hive的字符串截取函数:
substr()是字符串截取函数,其语法为: substr(string A, int start, int len),返回值为 string类型。
说明:返回字符串A从start位置开始,长度为len的字符串。
这里需要注意的是初始位置是从1开始。
11,hive的between函数。
BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
可以是能比较大小的数据,可以是有顺序的数据(如字母的顺序)
如需以字母顺序显示介于 “Adams”(包括)和 “Carter”(不包括)之间的人。

12,AND isEmpty(REGEXP_EXTRACT(app_ver,’[.]’,0))用来判断是否为空。

13,hive的数据类型转换。
CAST (expression AS data_type)
参数说明:
expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。

14,hive里的时间字符串可以比较大小。

15,数据库里的like函数。
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
现在,我们希望从上面的 “Persons” 表中选取居住在以 “N” 开始的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE ‘N%’
提示:"%" 可用于定义通配符(模式中缺少的字母)。

16,hive的视图。
lateral view为侧视图,意义是为了配合UDTF来使用,把某一行数据拆分成多行数据.
不加lateral view的UDTF只能提取单个字段拆分,并不能塞会原来数据表中.加上lateral view就可以将拆分的单个字段数据与原始表数据关联上

17,hive的explode()函数,用于将选定字段展示开。

18,hive的coalesce()函数
①用途:
将空值替换成其他值
返回第一个非空值
②表达式:
COALESCE是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。
如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值