【Hive】【Hadoop】工作中常操作的笔记-随时添加

发布时间:2023年12月19日

1、Hive 复制一个表:

直接Copy文件

create table new_table  like table_name;

hdfs dfs -get /apps/hive/warehouse/ods.db/table_name

load data local inpath '/路径' into table new_table;

修复表:

msck repair table table_name;

分析表

analyze table table_name compute statistics;

2、字段级操作

--新增字段
alter table add columns (filed1 data_type,filed2 data_type) cascade;

--修改字段
alter table change column filed_name new_filed_name data_type

--删除字段
--如果想删除最后一个字段column_2
create table table_name (
column_1 string,
column_2 int);
 
--删除column_2
alter table table_name replace columns(
column_1 string) cascade;    --column_2不写,即删除column_2,保留column_1

NOTE :

CASCADE会刷历史分区字段。

说明:

  • 因为hive表大部分是分区表,而加上cascade【注:中文翻译为“级联”】关键字,不仅会变更新分区的表结构(metadata),同时也会变更旧分区的表结构。
  • 当使用级联删除表中信息时,如果A表中的字段引用了B表中的字段,删除B表中字段信息,相应的A表也会删除。(当父表的信息删除,子表的信息也自动删除)
    对于分区表,在增删改时,一定要加上cascade否则其历史分区的元数据(metadata)信息将无法正常更新,可能会出现访问历史分区时数据为NULL等问题。

3、hdfs 文件统计

hdfs dfs -ls /apps/hive/warehouse/edw.db/table_name/ | wc -l
hdfs dfs -count /apps/hive/warehouse/edw.db/table_name

在这里插入图片描述
第一个数值表示目录下的文件夹的个数,

第二个数值表是当前文件夹下文件的个数,

第三个数值表示该文件夹下文件所占的空间大小,这个大小是不计算副本的个数的。

文章来源:https://blog.csdn.net/weixin_42804692/article/details/107649201
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。