Hive-生产常用操作-表操作和数据处理技巧-202404

2024-04-10 13:44

本文主要是介绍Hive-生产常用操作-表操作和数据处理技巧-202404,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

hive语句操作

        我这个只涉及到hive的对表的操作,包括建表,建分区表,加载数据,导出数据,查询数据,删除数据,插入数据,以及对hive分区表的操作,包括查看分区,添加分区,分区名修改,分区数据修改,删除分区等。

        复杂的聚合函数以及常用的炸裂函数的应用,行转列在这是没有体现出来的,后边有时间结合业务我再来写吧。

        基本我都是在hue上对hive进行操作,仅限于查查表,改改数据,而复杂的处理逻辑基本是使用spark写算法,调sparksql,或者sparkcore来实现的。

        这个整理的文章算一个笔记索引吧,忘了再来看看

时间:20240409

hive创建表

CREATE TABLE IF NOT EXISTS my_table (id INT COMMENT '唯一标识符',name STRING COMMENT '姓名',age INT COMMENT '年龄',salary DOUBLE COMMENT '薪水',address STRING COMMENT '地址'
)
COMMENT '示例表'
PARTITIONED BY (year INT COMMENT '年份', month INT COMMENT '月份')
STORED AS PARQUET;

hive查看建表语句

SHOW CREATE TABLE my_table;

hive复制表结构

-- hive建表结构
-- 创建一个新表,并命名为new_table
-- 使用SELECT语句从现有表existing_table中选择所有数据,并将其作为新表的内容,
-- 由于只是想复制现有表的结构,而不复制数据,使用WHERE子句中的条件1=0,确保不复制任何记录
CREATE TABLE new_table
AS
SELECT *
FROM existing_table
WHERE 1=0;

hive创建分区表

--hive创建一级分区表
create table if not exists part1(
id int,
name string
)
partitioned by (dt string) row format delimited fields terminated by ' ';

hive创建分区别及加载数据

--建表
create table if not exists part2(
id int,
name string
)
partitioned by (year int,month int) row format delimited fields terminated by ' ';
--hive加载数据
load data local inpath '/home/hivedata/t1' overwrite into  table part2 partition(year=2019,month=9);
load data local inpath '/home/hivedata/t' overwrite into  table part2 partition(year=2019,month=10);

hive导出数据

--hive导出数据
--使用Hive的INSERT OVERWRITE语句将数据导出到HDFS目录:
INSERT OVERWRITE DIRECTORY '/path/to/output'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
SELECT *
FROM your_table;

hive查询数据

--hive查询数据的逻辑及使用顺序
SELECT columns
FROM table_name
WHERE condition
GROUP BY columns
HAVING condition
ORDER BY columns
LIMIT n;

hive向某表插入数据

--hive插入数据
-- 向employees表插入一条新员工记录
INSERT INTO TABLE employees
VALUES (1, 'John Doe', 6000);

hive更新某表某条数据

--hive更新数据
-- 将工资低于5000的员工工资增加10%
UPDATE employees
SET salary = salary * 1.1
WHERE salary < 5000;

hive删除数据

--hive删除数据
-- 删除employees表中离职员工的记录
DELETE FROM employees
WHERE status = '离职';

hive分区操作

hive查看表分区

--hive查看分区
show partitions 表名;

hive添加分区

alter table part1 add partition(dt='2019-09-10');
alter table part1 add partition(dt='2019-09-13') partition(dt='2019-09-12');
alter table part1 add partition(dt='2019-09-11') location  '/user/hive/warehouse/qf1704.db/part1/dt=2019-09';

 hive分区名称修改

alter table part1 partition(dt='2019-09-10') rename to partition(dt='2019-09-14');
ALTER TABLE table1 PARTITION (dt='2023-01-01') RENAME TO PARTITION (dt='2024-04-01');

修改hive分区数据

        其实我整个博客的核心就是这块,前边的不过是顺手整理的,因为实际中有一个需求就是将hive某时间分区下的数据改了。emmmmm~

--修改Hive表中分区字段为'2024-04-01'且字段'a1'为'2021-01-01'的数据,将'a1'中数据为'2021-01-01'改为'2022-01-01'
UPDATE table1 SET a1 = '2022-01-01' WHERE dt = '2024-04-01' AND a1 = '2021-01-01';

hive删除分区

--hive删除分区
alter table part1 drop partition(dt='2019-09-14');
alter table part1 drop partition(dt='2019-09-12'),partition(dt='2019-09-13');

这篇关于Hive-生产常用操作-表操作和数据处理技巧-202404的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/891226

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Java Multimap实现类与操作的具体示例

《JavaMultimap实现类与操作的具体示例》Multimap出现在Google的Guava库中,它为Java提供了更加灵活的集合操作,:本文主要介绍JavaMultimap实现类与操作的... 目录一、Multimap 概述Multimap 主要特点:二、Multimap 实现类1. ListMult

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请