2021-10-26

一、hive分区

  1. 分区操作属于hive操作的重量级操作

  2. 分区在hdfs上物理结构是目录

  3. 非严格模式:no~
    动态分区要打开非严格模式

二、表数据删除方法对比说明:

drop,delete,truncate

联系:都可以达到删除数据的目标。

区别:Drop:把数据和元数据全删除;

delete:按照条件删除数据;(只会删除实体数据)

Truncate:截断数据,元数据不动,状态数据会删掉。

大数据环节中写入要注意:

1.是否要求输出目录存在;
上传要求put copy需要
写入基本不需要
2.写模式,是覆盖写,还是增量写
覆盖是两步,先删,再写(overwrite)
增加是在尾部
二、DQL

1,各种join使用,Union(上下)

inner join
将左表和右表满足联接条件的数据,全部查询出来

left outer join
以左表为主,将左表数据全部保留,右表没有关联上数据字段置成NULL

right outer join 同理
full outer join
没有关联上数据字段全部置成NULL
full join=inner join+left join+right join
union [all]
将所有表数据,完全叠加在一起,不去重。(没有all则为去重)

要求:所有表的字段和类型完全一致。

注意hive中子查询必学给与别名

2,内置函数(系统函数)

使用help解决一个函数不知道怎么用的问题:

desc function{方法}

三、常用函数:
count:行数

IF( Test Condition, True Value, False Value ) :判断

COALESCE( value1,value2,… )返回函数第一个不为空的值:

case…when :判断

split:将字符串拆分成数组。

explode:表成生成函数

lateral view:与explode连用制表

三、自定义函数

  1. UDF(user defined function)

  2. 流程
    自定义一个java类
    继承UDF类
    约定俗成的重写evaluate方法
    打包类所在项目成一个all-in-one的jar包并上传到hive所在机器(hdfs dfs -put)
    在hive中执行add jar操作,将jar加载到classpath中。(add jar /路径)
    在hive中创建模板函数,使得后边可以使用该函数名称调用实际的udf函数(
    create temporary function 方法名 as 方法类路径)
    hive sql中像调用系统函数一样使用udf函数

  3. 加入maven配置主要是引入hive cli包

<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-client</artifactId>
			<version>2.7.4</version>
			<scope>provided</scope>
		</dependency>
             
		<dependency>
			<groupId>org.apache.hive</groupId>
			<artifactId>hive-cli</artifactId>
			<version>1.2.1</version>
			<scope>provided</scope>
		</dependency> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值