HIVE创建分区表

这篇具有很好参考价值的文章主要介绍了HIVE创建分区表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、创建静态分区表(SP static )

1.启动集群

2.进入hive

3.创建test1118数据库并使用

hive创建分区表,Hadoop相关,hive,Powered by 金山文档

4.创建 t1 表

create table t1(
 c1 string,
 c2 string
);
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

5.查看表结构:

hive创建分区表,Hadoop相关,hive,Powered by 金山文档

6.创建t2表

create table t2(
 c1 string
) partitioned by ( c2 string ) row format delimited fields terminated by ',';

partitioned by ( c2 string ) # 创建分区 c1跟c2都是字段,但是创建的时候不能写在t2里面,只能写在分区里面(同时select查询的时候,c2的字段也要写在最后面)

hive创建分区表,Hadoop相关,hive,Powered by 金山文档

7.查看表结构:

hive创建分区表,Hadoop相关,hive,Powered by 金山文档

8.上传数据到 t2 表的 c2 分区

要加载数据到分区表,只需在原来的加载数据的语句上增加partition关键字,同时指定分区的字段值即可。

注意:当你退出过hive后,再次进入hive,不要忘记使用了哪个database,我这里使用的是test1118数据库

load data inpath '/lyh/bbb.txt' into table t2 partition (c2='a');
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

9.需要进行修复,输入以下命令

 msck repair table t2;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

10.查看内容

select * from t2;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

11.添加分区b

先确保集群上有a.txt这个文件退出hive

hdfs dfs -mkdir /user/hive/warehouse/test1118.db/t2/b
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
hdfs dfs -put /a.txt /user/hive/warehouse/test1118.db/t2/b
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

进入hive 后使用命令

use test1118;
load data inpath '/lyh/a.txt' into table t2 partition(c2='b');
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

但是这个时候是查看不了的,需要进行修复,输入以下命令

msck repair table t1;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

现在修复后可以进行查看

select * from t2;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

层次一次建好 分区可以逐个添加

create table t3 (
id int,
name string
)partitioned by (year string,month string)
row format delimited fields terminated by ',';
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
load data inpath '/lyh/a.txt' into table t3 partition (year='2022',month='11');
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
select * from t3 where year='2022';
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
select * from t3 where year='2022' and month='11';
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
hdfs dfs -mkdir /user/hive/warehouse/test1118.db/t3/year
hdfs dfs -mkdir /user/hive/warehouse/test1118.db/t3/year/month 
hdfs dfs -mkdir -p /user/hive/warehouse/test1118.db/t3/2023

这里的-p和linux意义不同

退出hive

hdfs dfs -mkdir -p /user/hive/warehouse/test1118.db/t3/2023/11
hdfs dfs -put /a.txt /user/hive/warehouse/test1118.db/t3/2023/11

进入hive,然后输入 use dest1118;

msck repair table t3;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
select * from t3;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

添加分区

alter table t3 add if not exists partition(year='2023',month='11');
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

退出hive

hdfs dfs -mv /d.txt /user/hive/warehouse/test1118.db/t3

进入hive,use test1118;

select * from t3;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

二、创建动态分区表(DP dynamic)

开启动态分区

set hive.exec.dynamic.partition=true
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

...=false 关闭

create database test1125;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
use test1125;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
create table t1(
c1 string
) partitioned by(c2 string)
row format delimited fields terminated by ',';

删除表

drop table t1;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
create table t2(
id int,
name string
) partitioned by(year string,month string)
row format delimited fields terminated by ',';
create table t1(
title string,
author_name string,
dynasty string,
c1 string,
c2 string,
c3 string,
c4 string
) row format delimited fields terminated by ',';
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
create table t1(
title string,
author_name string,
dynasty string,
c1 string,
c2 string,
c3 string,
c4 string
)partitioned by ( c5 string ) row format delimited fields terminated by ',';
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

创建一个a.txt文本,内容为

秋夜寄丘二十二员外,韦应物,唐代,怀君属秋夜,散步咏凉天,空山松子落,幽人应未眠
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

上传到集群

hdfs dfs -put a.txt /lyh
hive创建分区表,Hadoop相关,hive,Powered by 金山文档

导入文本到 t1 表里文章来源地址https://www.toymoban.com/news/detail-614819.html

use test1125;
load data inpath '/lyh/a.txt' into table t1 partition(c5='a');
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
select * from t1;
hive创建分区表,Hadoop相关,hive,Powered by 金山文档
/***
 *             ,%%%%%%%%,
 *           ,%%/\%%%%/\%%
 *          ,%%%\c "" J/%%%
 * %.       %%%%/ o  o \%%%
 * `%%.     %%%%    _  |%%%
 *  `%%     `%%%%(__Y__)%%'
 *  //       ;%%%%`\-/%%%'
 * ((       /  `%%%%%%%'
 *  \\    .'          |
 *   \\  /       \  | |
 *    \\/         ) | |
 *     \         /_ | |__
 *     (___________))))))) 攻城湿
 */

到了这里,关于HIVE创建分区表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive分区表实战 - 多分区字段

    本实战教程通过一系列Hive SQL操作,演示了如何在大数据环境下创建具有省市分区的大学表,并从本地文件系统加载不同地区的学校数据到对应分区。首先,创建名为 school 的数据库并切换至该数据库;接着,在数据库中定义一个名为 university 的分区表,其结构包括ID和名称两

    2024年01月15日
    浏览(35)
  • Hive分区表修改(增删)列

    环境:CDH6.3.0,Hive 2.1.1-cdh6.3.0 基础数据分区表test1,包含a,b,c,d共4列加分区列p_day,向其中插入两行数据 表中数据及parquet文件信息如下: test2表直接使用test1表的文件: 修复分区并查询数据 删除test2表的a列,看起来只有通过replace columns实现,但是运行报错,根据官方文档,只

    2023年04月26日
    浏览(65)
  • Hive 分区表和分桶表

    在《Hive 建表语句解析》文章中,建表的时候我们可以使用 PARTITIONED BY 子句和 CLUSTERED BY 子句来创建分区表和分桶表,为什么要创建分区表和分桶表呢?分区表和分桶表有什么区别呢? 1. 为什么分区 在Hive 查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时

    2023年04月23日
    浏览(33)
  • Hive ---- 分区表和分桶表

    Hive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录,每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择查询所需要的分区,这样的查询效率会提高很多。 1. 创建分区表 2. 分区表读写数据 1)写数据 (1)load 数据准备 在/opt/module/hiv

    2024年02月10日
    浏览(46)
  • Hive 分区表新增字段 cascade

    在以前上线的分区表中新加一个字段,并且要求添加到指定的位置列。 加 cascade 操作 创建测试表 插入测试数据 查看现有数据 官网添加列的语法 注意: Hive 1.1.0 中有 CASCADE|RESTRICT 子句。 ALTER TABLE ADD|REPLACE COLUMNS CASCADE 命令修改表元数据的列,并将相同的更改级联到所有分区

    2024年02月11日
    浏览(39)
  • 【Hive大数据】Hive分区表与分桶表使用详解

    目录 一、分区概念产生背景 二、分区表特点 三、分区表类型 3.1 单分区 3.2 多分区

    2024年02月03日
    浏览(33)
  • Hive基础知识(十六):Hive-SQL分区表使用与优化

    分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。 Hive 中的分区就是分目录 ,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的 查询效率会提高很多

    2024年01月18日
    浏览(29)
  • 二次开发DataX以支持HIVE分区表

            最近在一个大数据的项目开发中使用到了数据同步工具DataX,但在使用过程中发现了DataX对HIve分区表的支持不太友好。         具体体现在将数据库中的数据同步到HIVE分区表时,写入目录为HIVE表分区为dt=XXXX,如果不提前创建该分区,会报目录不存在的错误,如

    2024年02月16日
    浏览(34)
  • hive分区表之insert overwrite 注意事项

    hive version 3.1.3 以往我们插入分区 需要 insert ovewrite table  p_table partition(period_id=‘202212’)  select id name from xxxx;  或者是 insert overwrite table  select  id,name,period_id from table where period_id=202212 前者是指定分区,后者是动态分区。没啥好说的。 但是今天遇到一个问题,如果我查询的数

    2024年02月13日
    浏览(43)
  • HIVE表数据快速构造(分区表、orc、text)

    引言 当需要在hive数仓中去创建测试表并构造测试数据时,通常需要在安装了hive客户端的服务器环境下,通过执行命令的方式建表。通过在HDFS上上传和加载数据文件的方式来加载数据到hive表中。其中操作算不得多复杂,但比较依赖对环境和命令的熟悉,并且操作不够可视化

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包