• hive修改表DDL


    -- 修改表名
    ALTER TABLE 表名 RENAME TO 新表名;
    
    -- 修改表注释,comment要小写
    ALTER TABLE 表名 SET TBLPROPERTIES('comment' = '表注释内容');
    
    -- 添加列和注释
    ALTER TABLE 表名 ADD COLUMNS (列1 sid STRING COMMENT '学生id',列2 STRING COMMENT '学生姓名');
    
    -- 修改列名和注释
    ALTER TABLE 表名 CHANGE COLUMN 列名 新列名 string COMMENT '学生id';
    
    -- 修改列名
    ALTER TABLE 表名 CHANGE COLUMN 列名 新列名 string;
    
    -- 可以把该列放到指定列的后面,或者使用'FIRST'放到第一位
    ALTER TABLE 表名 CHANGE COLUMN 列名 新列名 int(修改后列的属性) COMMENT 'column_name' AFTER severity;
    -- 将表tablename中的列column_orign修改成column_new,同时指定修改后的列名称的属性,comment是这个列的注释
       --例1:
       ALTER TABLE emp CHANGE COLUMN age uage double COMMENT 'column age' AFTER id;
       
    -- 查看表的属性
    DESC FORMATTED tablename;
    
    -- 修改表的属性
    -- 将table_name表中的property_name属性值修改成'new_value';
    ALTER TABLE table_name SET TBLPROPERTIES('property_name'='new_value');
    
    -- 将表table_name中的字段分割符修改成'	',注意,这是在表没有分区的情况下
    ALTER TABLE emp SET SERDEPROPERTIES("field.delim"="	");
    --例1:
      CREATE TABLE emp(id INT,uname STRING)
        ROW FORMAT DELIMITED FIELDS TERMINATED BY '#' 
        LINES TERMINATED BY '
    ' 
        STORED AS textfile;
    -- 这条语句将t8表中的字段分隔符'#'修改成'	';
      ALTER TABLE emp SET SERDEPROPERTIES('field.delim'='	');
    --例2:
      CREATE TABLE emp(id INT,uname STRING) 
      PARTITIONED BY(dt string) 
      ROW FORAMT DELIMITED FIELDS TERMINATED BY '
    ' 
      STORED AS textfile;
    ALTER TABLE emp PARTITION(dt='20180108') SET SERDEPROPERTIES('field.delim=	');
    --例3 
    ALTER TABLE table_name[partition] set location 'path'
    --内部表转化成外部表
    ALTER TABLE emp SET TBLPROPERTIES('EXTERNAL'='TRUE');
    --外部表转化成内部表
    ALTER TABLE emp SET TBLPROPERTIES('EXTERNAL'='FALSE');
    
    -- 解析json字符串get_json_object(param1,"$.param2") 
    -- param1:需要解析的json字段 
    -- param2:遇到数组就用 [0,1,2...] 0,1,2是数组对应的元素,遇到jsonObject直接用 "$.key"取出想要获取的value。
    SELECT get_json_object('{"name":"王二狗","sex":"男","age":"25"}','$.name') movie
    
    -- 侧写
    SELECT name,course
    FROM student
    LATERAL VIEW
    EXPLODE(SPLIT(course,",")) course_tmp AS course ;

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual

    -- 修改表名ALTER TABLE 表名 RENAME TO 新表名;
    -- 修改表注释,comment要小写ALTER TABLE 表名 SET TBLPROPERTIES('comment' = '表注释内容');
    -- 添加列和注释ALTER TABLE 表名 ADD COLUMNS (列1 sid STRING COMMENT '学生id',列2 STRING COMMENT '学生姓名');
    -- 修改列名和注释ALTER TABLE 表名 CHANGE COLUMN 列名 新列名 string COMMENT '学生id';
    -- 修改列名ALTER TABLE 表名 CHANGE COLUMN 列名 新列名 string;
    -- 可以把该列放到指定列的后面,或者使用'FIRST'放到第一位ALTER TABLE 表名 CHANGE COLUMN 列名 新列名 int(修改后列的属性) COMMENT 'column_name' AFTER severity;-- 将表tablename中的列column_orign修改成column_new,同时指定修改后的列名称的属性,comment是这个列的注释   --例1:   ALTER TABLE emp CHANGE COLUMN age uage double COMMENT 'column age' AFTER id;   -- 查看表的属性DESC FORMATTED tablename;
    -- 修改表的属性-- 将table_name表中的property_name属性值修改成'new_value';ALTER TABLE table_name SET TBLPROPERTIES('property_name'='new_value');
    -- 将表table_name中的字段分割符修改成' ',注意,这是在表没有分区的情况下ALTER TABLE emp SET SERDEPROPERTIES("field.delim"=" ");--例1:  CREATE TABLE emp(id INT,uname STRING)    ROW FORMAT DELIMITED FIELDS TERMINATED BY '#'     LINES TERMINATED BY ' '     STORED AS textfile;-- 这条语句将t8表中的字段分隔符'#'修改成' ';  ALTER TABLE emp SET SERDEPROPERTIES('field.delim'=' ');--例2:  CREATE TABLE emp(id INT,uname STRING)   PARTITIONED BY(dt string)   ROW FORAMT DELIMITED FIELDS TERMINATED BY ' '   STORED AS textfile;ALTER TABLE emp PARTITION(dt='20180108') SET SERDEPROPERTIES('field.delim= ');--例3 ALTER TABLE table_name[partition] set location 'path'--内部表转化成外部表ALTER TABLE emp SET TBLPROPERTIES('EXTERNAL'='TRUE');--外部表转化成内部表ALTER TABLE emp SET TBLPROPERTIES('EXTERNAL'='FALSE');
    -- 解析json字符串get_json_object(param1,"$.param2") -- param1:需要解析的json字段 -- param2:遇到数组就用 [0,1,2...] 0,1,2是数组对应的元素,遇到jsonObject直接用 "$.key"取出想要获取的value。SELECT get_json_object('{"name":"王二狗","sex":"男","age":"25"}','$.name') movie
    -- 侧写SELECT name,courseFROM studentLATERAL VIEWEXPLODE(SPLIT(course,",")) course_tmp AS course ;

  • 相关阅读:
    ajax标准写法
    javascript序列化表单追加参数
    javascript获取url参数的方式
    jmeter实现跨线程组传递参数
    代码扫描工具SonarQube+Scanner的基本安装与应用
    给定一个非空正整数的数组,把数值与出现的次数存在一个新的字典中,并按照出现的次数排序
    定义一个函数,实现整数列表中偶数在左边,奇数在右边(不借助其它列表)
    python-leetcode1在一个整数数组中找出两数之和等于目标值,并把两数下标存在list中返回
    python根据key对字典进行排序
    python实现对浮点型的四舍五入
  • 原文地址:https://www.cnblogs.com/lly001/p/14306562.html
Copyright © 2020-2023  润新知