zoukankan      html  css  js  c++  java
  • hive 外部表 内部表 添加新字段忘了加cascade 导致 旧分区的新字段数据为null问题解决

    -- 外部表的情况:
    --不管有没有加cascade字段,新写的分区数据中都会显示新加字段的值。
    --针对于旧分区,如果加了cascade,那么覆写旧分区的数据后,新字段可以直接select出来。
    -- 如果不加cascade,覆写旧分区的数据后,新字段仍然是null,
    -- 解决办法1:需要对以前的旧分区执行drop分区然后“add分区或者msck repair”后,才可以select出来。(推荐这种)
    -- 解决办法2:需要对以前的旧分区执行alter table tb_name partition (dt=...) add columns(new_field string)后,才可以select出来。(不推荐这种,因为,如果添加多个字段且都没有指定cascade,那么必须将所有字段都add columns操作,才能看到正确的数据。如果只添加某一个字段(比如最后一个字段),那么实际select出来后,显示出来的是按照desc table顺序的第一个新字段,这里比较迷惑人。所以还是不如第一种解决办法一步到位)

    -- 内部表的情况:
    --不管有没有加cascade字段,新写的分区数据中都会显示新加字段的值。
    --针对于旧分区,如果加了cascade,那么覆写旧分区的数据后,新字段可以直接select出来。
    -- 如果不加cascade,覆写旧分区的数据后,新字段仍然是null,
    -- 解决办法:需要对以前的旧分区执行alter table tb_name partition (dt=...) add columns(new_field string)后,才可以select出来。千万不能drop partition,因为是内部表,会直接删除数据的。

  • 相关阅读:
    hdu 1255 矩形覆盖面积(面积交)
    hdu 3642 覆盖3次以上体积
    hdu 3255 体积并
    hdu 3265 矩形剪块面积并
    HDU 3397 区间覆盖,颠倒,合并(好题)
    ACM-线段树扫描线总结
    POJ 3667 线段树区间合并
    数组排序----Demo
    Spring MVC配置详解(3)
    生产者消费者模式--
  • 原文地址:https://www.cnblogs.com/cnblogszs/p/14320804.html
Copyright © 2011-2022 走看看