当前位置: 首页 > news >正文

Hive表删除数据不支持使用Delete From...

前言:

今天在做数据仓库项目,通过persto向hive插入数据的时候,插入了两次不同的数据。这就导致需要删除掉其中插入错误的数据,我第一反应是使用 delete from .........

结果:报错了!!!

org.apache.hadoop.hive.ql.parse.SemanticException:Attempt to do update or delete using transaction manager that does not support these operations.

大致是说:不支持这些操作的事务管理器进行更新或删除


报错:

突然想起来了不能这样搞!

Hive表 删除数据不支持使用Delete From......

那Hive表如何删除部分数据呢?

一、概述

hive 表删除部分数据不支持使用 Delete From table_name where ...语句

hive表删除数据要分为不同的粒度:table、partition、partition内

二、有 Partition 分区表

有分区字段的数据表,删除数据时要注意分两种情况:

1、有分区字段的数据表,删除数据时要注意分两种情况:

--删除一个分区的数据
alter table table_name drop partition(partiton_name='value')
-- 删除多个分区的数据
alter table table_name drop partition(partiton_name<'value')
alter table table_name drop partition(partiton_name<='value')
alter table table_name drop partition(partiton_name>'value')
alter table table_name drop partition(partiton_name>='value')

2、删除分区内部的部分数据,这时使用重写方式对满足条件的分区进行 overweight 操作,并通过 where 来限定需要的信息,未过滤的的信息将被删除,具体代码格式如下:

insert overwrite table table_name partition(partition_name='value') 
select column1,column2,column2 FROM table_name
where partition_name='value' and column2 is not null

三、没有 Partition 分区表

1、直接清空数据,再插入需要的数据,具体代码格式如下:

truncate table database.tablename

2、通过 overweight 对所有数据重写,具体代码格式如下:

insert overweight table table_name 
select * from table_name WHERE column is not null  --限制条件可以自行修改

我的解决方法:

由于我的数据表没有进行分区,所以我直接清空了数据,又把正确的数据插入了一遍。

 

吐槽:第一次搞数据仓库项目,好艰难!

但是我会加油的!

好啦,本次总结结束,我继续搞项目啦!

相关文章:

  • 数据库-进阶-存储引擎
  • LeetCode题目笔记——459. 重复的子字符串,python从700ms到60ms
  • C++ | 12天学好C++ (Day 12)->结构图可视化、代码加通俗理解
  • 【深入理解Kafka系列】第五章 日志存储
  • 想做好数据可视化?手把手教你正确选择图表类型
  • C#【高级篇】 IntPtr是什么?怎么用?
  • 软考知识点---01计算机的基本组成---02存储系统
  • Day09JavaWeb第九次笔记---Request和Response学习
  • 第三章 Flink基础理论之内存优化及常见内存报错解决方案
  • 分数阶粒子群算法-附代码
  • springboot(三)
  • Kubernetes 常见面试题(六)
  • Linux安装禅道最新版
  • 【Bluetooth|蓝牙开发】十一、一文秒懂 | 超详细的Bluez交叉编译
  • TC8:SOMEIPSRV_FORMAT_01-10
  • echarts花样作死的坑
  • java 多线程基础, 我觉得还是有必要看看的
  • JAVA之继承和多态
  • Odoo domain写法及运用
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • sessionStorage和localStorage
  • Spark RDD学习: aggregate函数
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 和 || 运算
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端
  • 阿里云服务器购买完整流程
  • 带你开发类似Pokemon Go的AR游戏
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #pragma once与条件编译
  • #WEB前端(HTML属性)
  • #传输# #传输数据判断#
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (175)FPGA门控时钟技术
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET MVC之AOP
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET开发人员必知的八个网站
  • @SuppressWarnings注解
  • @TableLogic注解说明,以及对增删改查的影响
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [C#]猫叫人醒老鼠跑 C#的委托及事件
  • [c#基础]值类型和引用类型的Equals,==的区别
  • [codeforces]Recover the String
  • [docker]docker网络-直接路由模式
  • [emuch.net]MatrixComputations(7-12)
  • [HAOI2016]食物链