hive表删除分区数据

来源:互联网  责任编辑:小易  

insert overwrite table t_table1 select*from t_table1 where XXXX;其中xxx是你需要保留的数据的查询条件。如果清空表,如下:insert overwrite table t_table1 select*from t_table1 where 1=0;www.zgxue.com防采集请勿采集本网。

这边有一个hive表,其中分区为“area”“year”“month”“day”’“hour”“ minute”六个分区

需要删除一些不用了的数据:用了ALTER TABLE meso DROP PARTITION (area='1' , year='2012');

Hive 中的元数据包括表的名字、表的列和分区及其属性、表的属性(是否为外部表等)、表数据所在的目录等。解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化到查询计划的生成。

提示分区不匹配,

假定有hive中有两个表empl_inn(管理表)和empl_ext(外部表),他们都有分区(logdate string);1.对于外部表 empl_ext 执行删除分区时vod_pb/下的数据会被删除并且连同vod_pb/文件夹也会被删除

[hadoop3:21000] > ALTER TABLE meso DROP PARTITION (area='1' , year='2012');

一、Hive only:加载分区数据的快捷方法 如果指定的分区不存在Hive将创建新的分区 这个命令将: (1)如果不存在的话添加分区到表的元数据 (2)如果存在的话,创建子目录:/user/hive/warehouse

Query: alter TABLE meso DROP PARTITION (area='1' , year='2012')

hivesql sql—获取指定hive表或指定文件中所有hive表的DDL,如果有按天的分区则默认执行最近7天的分区DDL。同时,table支持符合sql语法的正则表达式,如果有多个表匹配,则提示用户选择(使用file则自动

ERROR: AnalysisException: Items in partition spec must exactly match the partition columns in the table definition: default.meso (2 vs 6)

填入Hive表中需要的每列数据,比如我这里需要创建一个分区表:Hiveshell代码收藏代码hive(ch09)>createtablesupply(idint,partstring,quantityint)partitionedby(dayint);hive(ch09)>

必须指定6个分区才可以,有没有什么其他的好方法去删除这些数据呢?

(adsbygoogle = window.adsbygoogle || []).push({});

抱歉,我个人能力有限,帮不了你。

在我实际的开发经验中,可以这样做。复1、如果hive表在hdfs上有多个part,可以制删除部分part。2、如果hive表有多个分区,可以删除分区文件夹。3、可以根据where条件删除符合条zd件的。4、骚操作:drop table if exists tmp_srcTable;create table tmp_srcTable as SELECT * from srcTable limit 120000;insert overwrite table srcTable select * from tmp_srcTable;drop table tmp_srcTable;,insert overwrite table t_table1 select * from t_table1 where XXXX;其中xxx是你需zhidao要保留的数据的查询条件。专如果清空表,如下:属insert overwrite table t_table1 select * from t_table1 where 1=0;本回答被提问者和网友采纳,工具:(1)HIVE;(2)电百脑;(3)Xshell;采用hdfs命令进行删除表中的部分数据:1、先使用hdfs查看度该表实际分区知以及数据目录位置hdfs dfs -ls /user/hive/warehouse/tbdata.db/表名小写/;2、例如:道使用hdfs命令删除该分区20161124目录hdfs dfs -rm -r -f   /user/hive/warehouse/tbdata.db/表名小写/etl_dt=20161124;3、最专后查看是否有分区目录;4、最查看进hive命令行查看此表是否还有数属据。本回答被网友采纳,Hive是不支持更新操作的,你可以这样子做,从Hive表中查询出你想保留的数据,并且输入到原来的表中,insert overwrite table t_table1 select * from t_table1 where XXXX; 其中xxx是你需要保留的复数据的查询条件制。 如果清空表zhidao,如下: insert overwrite table t_table1 select * from t_table1 where 1=0;内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • hive中怎么删除表中的部分数据
  • 请教hive分区表删除数据
  • hive中怎样删除分区
  • hive like建表怎么删除分区列
  • hive中怎么删除表中的部分数据
  • Hive 修改表添加分区和 加载数据时添加分区 的区别
  • 在Hive中如何实现数据分区
  • hive 外部表怎么加载分区数据
  • 如何每日增量加载数据到Hive分区表
  • 如何每日增量加载数据到Hive分区表
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved