但修改分区字段类型时会报错如下:

CREATE EXTERNAL TABLE tmp.tmp_table_name(col_name string)

PARTITIONED BY (dt string COMMENT 'dt',part_col_name string COMMENT 'part_col_name')

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'

STORED AS ORC

TBLPROPERTIES ('orc.compress'='SNAPPY');

hive> alter table tmp.tmp_table_name change part_col_name part_col_name int comment'test';

AILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Invalid column reference part_col_name

有两种修改思路:

常规的:创建一张调整完的新表,然后将数据insert到新表

另一种:

1. 将待修改的表切换成外部表

ALTER TABLE tmp.tmp_table_name SET TBLPROPERTIES ('EXTERNAL'='true');

2. 删除该外部表,此时数据文件依然在

drop table tmp.tmp_table_name;

3. 重建该表,字段类型完成调整

CREATE EXTERNAL TABLE `tmp.tmp_table_name`(`col_name` string)

PARTITIONED BY ( `dt` string COMMENT 'dt', `part_col_name` int COMMENT 'part_col_name')

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'

STORED AS ORC

TBLPROPERTIES ('orc.compress'='SNAPPY');

4. 重建分区

msck repair table tmp.tmp_table_name;

第二种方式一般来说是没有问题的,但是也有特殊情况会出现报错:

Failed with exception java.io.IOException:java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.io.IntWritable

会导致无法正常查询出数据

这里描述一个例子,原表曾调整过表结构, ALTER TABLE table_name CHANGE col_name col_name1 INT; 比如将string调整为int,这样会导致对应的列的数据为null,但是如果将该表数据重建后,会因这列数据导致所有数据无法查询出来,此时重建该表时需要将该列调整为string,然后再用alter改为int才和原表一样,所以使用第二种方式虽然方便,但也是会存在风险的。

hive分区对应hadoop_hive修改分区类型相关推荐

  1. HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令

    1.上传tar包 这里我上传的是apache-hive-1.2.1-bin.tar.gz 2.解压 mkdir -p /home/tuzq/software/hive/ tar -zxvf apach ...

  2. hive 修改分区备注_Hive分区、分桶操作及其区别

    点击上方"风控圈子"  选择"星标"公众号 每天早上8:30,一起实现自我增值 Hive是基于Hadoop的一个数据仓库工具,使用类SQL的查询语句,即HQL对 ...

  3. hive 修改分区备注_hive修改 表/分区语句

    这里主要列一些常用操作. 添加分区 ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1'; //示例 AL ...

  4. hive 修改分区备注_hive修改 表/分区语句

    这里主要列一些常用操作. 添加分区 ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1'; //示例ALT ...

  5. hive查看一张表的分区字段_Hive表分区与索引

    hive表分区 表分区是指将数据按照物理分层的方式进行区分开,加快查询的速度,同时也起到数据快照的作用! 创建分区表的关键字:partitioned by ,可以指定单个字段也可以指定多个字段: pa ...

  6. Hive 05_hive变量、动态分区

    hive 参数.变量     --hive当中的参数.变量,都是以命名空间开头     --通过${}方式进行引用,其中system.env下的变量必须以前缀开头 hive 参数设置方式 --1.修改 ...

  7. Android 系统(65)---Android修改分区格式为F2FS

    Android修改分区格式为F2FS 谁人没试过犹豫,达到理想不太易 -–Beyond 本文介绍如何将Android系统的/data分区改变成F2FS格式.修改的原因是F2FS分区格式拥有更加的I/O ...

  8. linux 8e,linux下分区id如何修改,lvm是 8e

    linux下分区id如何修改,lvm是 8e linux下分区id如何修改?一起来看看吧 1.输入fdisk /dev/dhb fdisk后面接上设备名称(IDE硬盘是HD SICI\STA硬盘是 S ...

  9. 苹果计算机错误怎么改,Mac电脑未能修改分区图,因为文件系统验证失败怎么办?...

    有朋友会发现mac电脑提示分区失败然后说发生错误提示为 未能修改分区图,因为文件系统验证失败 ,那么碰到此问题我们要如何来解决呢?下面一聚教程小伙伴就为各位介绍,有兴趣了解的可以和小编一起来看看哦. ...

最新文章

  1. 赛灵思Zynq-7000 可扩展处理平台(EPP)介绍
  2. C++中出现一排金字塔符号_看懂施工图中的钢筋标注,真没你想的那么难
  3. Ospf在广播网络中建立邻居关系的详细过程
  4. 当下大部分互联网创业公司为什么都愿意采用增量模型来做开发?
  5. 斗鱼第三方开放平台2.2版使用记录
  6. 蓝桥杯 ALGO-107 算法训练 9-7链表数据求和操作
  7. javascript---不可靠的“undefined”
  8. linux内存寻址解析 (二)
  9. 小白都能理解的FTRL
  10. MLDN的超级玛丽。。。
  11. 使用 FUMA 鉴定 Independent SNPs 和 Lead SNPs
  12. C语言入门题库——求数列2/1+3/2+5/3......的和
  13. matlab无法打开wps的xls文件,wps表格无法打开xls文件相关解决方法
  14. 用Python实时获取steam特惠游戏数据
  15. request获取登录用户名
  16. 计算机被浏览器方式打开文件,我把一个文件设置成ie浏览器的打开方式,然后所有的文件都变成了ie浏览器打开方式...
  17. 2018-2019 ACM-ICPC沈阳(C,J)
  18. 计算机图像处理的未来发展,探讨计算机图像处理技术的发展趋势与展望
  19. 使用requests.get()得到的源代码与浏览器中的不一样
  20. 【EE308FZ Lab3-2-1】Sprint Plan: RISD-IoT-Group

热门文章

  1. 福禄克光纤测试标准有哪些?
  2. 定制电液伺服阀控制器
  3. OpenJDK各版本下载
  4. uni app页面跳转后,刷新页面参数丢失问题
  5. WeiXin组件Senpac(二)【Demo介绍】
  6. 如何录音转文字:探寻声音的文字之舞
  7. ubuntu 虚拟机安装Gtest
  8. Java中类的执行顺序
  9. 32位mips指令说明
  10. 【Maya】Maya项目管理、跨版本开发、中英文切换、常用快捷键及操作