大数据---Hive

		本人新手才学Hive,不对的地方额昂大佬评论区指出

Hive操作表语法

	create table if not exists 表 :创建表的时候如果表存在会忽略后面代码,不会报错
	create database 库名 location '地址'
			---comment '数据库描述信息'
			---with dbproperties('key'='value')  //键值对形式描述信息
			---describe databese (extended):输出数据库(键值对)的详细信息
	drop **if exists** partition  删除表是不会报错
	drop database if exists 库名 cascade:删除数据库时会自动删除库中的表数据
			注:删除数据库时必须是空库,否则不会删除。

创建表时插入数据

create table if not exists table_str as select * from table_a;
或
create table str as select a.id,a.name,b.age from a left join b where a.id=b.id;

插入数据

insert into table_str(id,age) values(1,23);

hive函数

贴一个链接:https://blog.csdn.net/s_hizhi/article/details/99223549

字符串函数

替换函数:
	translate(string str1,string str2,string str3) :str1中出现str2就把str2换成str3并返回、如果没有不做任何操作并返回
	find_in_set(string str,string str1):返回str在str1中出现的位置,str1必须由,号分割;参数为逗号或查找失败返回0,任一参数为NULL返回NULL
连接函数:
	concat():将括号里的字符串成一个字符串
	concat_ws(string S,string a,string b):用第一个参数作为间隔符把两个参数穿起来
截取:
	substring():截取字符串,可能会从0、1开始计算
	substr(str, int n):从n的位置截取字符串并返回
	sunstr(str,int n,int len):从n截取,长度为len返回
	sunstr_index():substring_index('www.apache.org', '.', 2) = 'www.apache'..
	截取第count分隔符之前的字符串,如count为正则从左边开始截取,如果为负则从右边开始截取
分组(列转行):
	collect_list:是对分好组的字段,按照分组的字段汇总。即列转行
	collect_set:同上,只是list不去重,set去重
拆分:
	explode:是把split拆分的字段逐行输出
	lateral view :为了跟explode连用从而输出多个字段

json_tuple:对json字符串的多个字段进行解析
get_json_object():对json字符串的某一个字段进行解析
	(如果输入的JSON是非法的将返回NULL,注意此路径上JSON字符串只能由数字 字母 下划线组成且不能有大写字母和特殊字符,且key不能由数字开头,这是由于Hive对列名的限制)
其他
ascii(string str):返回str中首个ASCII字符串的整数值
format_number(number x,int d):把数值x转换为#,###,###,##格式的字符串,保留d位小数;如果d为0则四舍五入
		
in_file(string str,string filename):如果名为filename的文件中包含str字符串就返回true

instr(string str,string substr):返回substr在str中出现的位置(从1开始),失败返回0,任一参数为NULL则返回NULL

length(str):返回字符串str的长度

locate(string substr,string str[,int pos]):返回字符串substr在str中pos后面首次出现的位置
	
lower(str):返回小写
lcase(str):

lpad(str,int,pad):从左边开始对字符串str使用字符串pad填充,最终len长度为止,如果字符串str本身长度比len大的话,将去掉多余的部分
rpad(str,int,pad):
	
ltrim(str):去掉str前面的空格
rtrim(str):去掉后面的空格
repeat(str,n):重复输出str字符串n次
reverse(str):反转字符串
space(int n):返回n个空格

数学函数

	row_number(*):取出最新的最大的
	over(partition by *):按照字段进行分组
	over(order by salary):按照字段排序并累加
	as:给当前表取一个别名
row_number() over(distribute by id sort(order) by age)	把id相同的发往一个reduce上,并按照age组内排序


	
	
	
	
	
	
	
	
	
	nvl(a,b):如果a为空就返回b
	
	hiveconf:是在Hive上下文中设置参数的
	hivevar:变量替换
	define:简写形式为-d 用途与hivevar一样
	
	cast(字段名 as 转换的类型)       例子:cast(aa as 转换的类型)  【aa=2015-11-03 15:31:26】
		date 日期型   ---------------->  2015-11-03
		datetime 日期和时间型 ---------------->  2015-11-03 15:31:26
		signed int ----------------> 20151103153126
		time 时间型 ---------------->  15:31:26
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值