hive基础知识

1.行格式和指定分隔符:

 row format delimited --行格式

FIELDS TERMINATED BY ' '  --指定列分隔符

'任意字符'   ----》按照里面的内容进行分隔

2.把本地数据加载到表中

本地数据加载到表中的实质是拷贝/复制,命令如下:

load data local inpath '本地文件路径' into table teacher;

3.把文件上传的数据加载到hdfs中

3.1 先在hdfs上建一个文件夹,命令如下:

第一步:hadoop dfs -mkdir /文件名;

eg:hadoop dfs -mkdir /test

3.1.2把本地文件,上传到hdfs上的刚建的文件夹下,命令如下:
第二步:hadoop dfs -put 本地文件名称   /hdfs上文件夹的名称

eg:hadoop dfs -put aa.txt /test

4.把hdfs文件加载到本地

4.1hdfs数据加载到表中其实质是剪切,命令如下:

load data inpath 'hdfs上的文件路径' into table  表名(hive中的表名)

eg:load data inpath '/test/aa.txt' into table teacher ;

5.内部表和外部表特点:

-- 内部表的特点:

-- 1.创建表的时候没有关键字

-- 2.数据默认存储到hdfs上的/user/hive/warehouse/

-- 3.删除内部表,表会直接删除元数据和存储数据

-- 外部表特点:

-- 1.外部表关键字:external

-- 2.外部表数据存储路径自定义

-- 3.删除外部表,表仅仅会删除元数据,并不会删除数据

6.分区表特点:

-- 分区表

-- 分区表是将数据以文件夹为分区单位分割的一种表

-- 大白话:一个分区一个文件夹 可以有多个文件

7.hive中4个by的区别

order by

全局排序,只有一个reduce
缺点:当数据量非常大时,耗时太长,效率低下,适用于数据量较小的场景;
优点:数据全局排序;

sort by

对每一个reducer内部的数据进行排序,全局结果集来说不是排序的,即只能保证每一个reduce输出的文件中的数据是按照规定的字段进行排序的;适用于数据量较大,但对排序要求不严格的场合,可以大幅度提升执行效率;

备注:需要你预先设置reduce个数,结果各个reduce文件内部有序,全局无序;

Distrbute By

类似MR中Partition,进行分区,结合sort by使用。

这边需要设置reduces的数量为分区的数量,否则不会启动相应的reducer去进行任务的执行,这最终会导致不能完全分区;

Cluster By

当Distribute by和Sorts by字段相同时,可以使用Cluster by方式。Cluster by除了具有Distribute by的功能外还兼具Sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值