zoukankan      html  css  js  c++  java
  • 转 hive表操作

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTableCreate/Drop/TruncateTable

    CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    -- (Note: TEMPORARY available in Hive 0.14.0 and later)
      [(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
      [COMMENT table_comment]
      [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
      [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
      [SKEWED BY (col_name, col_name, ...)                  -- (Note: Available in Hive 0.10.0 and later)]
         ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
         [STORED AS DIRECTORIES]
      [
       [ROW FORMAT row_format] 
       [STORED AS file_format]
         | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  -- (Note: Available in Hive 0.6.0 and later)
      ]
      [LOCATION hdfs_path]
      [TBLPROPERTIES (property_name=property_value, ...)]   -- (Note: Available in Hive 0.6.0 and later)
      [AS select_statement];   -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
    
    CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
      LIKE existing_table_or_view_name
      [LOCATION hdfs_path];
    
    data_type
      : primitive_type
      | array_type
      | map_type
      | struct_type
      | union_type  -- (Note: Available in Hive 0.7.0 and later)
    
    primitive_type
      : TINYINT
      | SMALLINT
      | INT
      | BIGINT
      | BOOLEAN
      | FLOAT
      | DOUBLE
      | DOUBLE PRECISION -- (Note: Available in Hive 2.2.0 and later)
      | STRING
      | BINARY      -- (Note: Available in Hive 0.8.0 and later)
      | TIMESTAMP   -- (Note: Available in Hive 0.8.0 and later)
      | DECIMAL     -- (Note: Available in Hive 0.11.0 and later)
      | DECIMAL(precision, scale)  -- (Note: Available in Hive 0.13.0 and later)
      | DATE        -- (Note: Available in Hive 0.12.0 and later)
      | VARCHAR     -- (Note: Available in Hive 0.12.0 and later)
      | CHAR        -- (Note: Available in Hive 0.13.0 and later)
    
    array_type
      : ARRAY < data_type >
    
    map_type
      : MAP < primitive_type, data_type >
    
    struct_type
      : STRUCT < col_name : data_type [COMMENT col_comment], ...>
    
    union_type
       : UNIONTYPE < data_type, data_type, ... >  -- (Note: Available in Hive 0.7.0 and later)
    
    row_format
      : DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
            [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
            [NULL DEFINED AS char]   -- (Note: Available in Hive 0.13 and later)
      | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
    
    file_format:
      : SEQUENCEFILE
      | TEXTFILE    -- (Default, depending on hive.default.fileformat configuration)
      | RCFILE      -- (Note: Available in Hive 0.6.0 and later)
      | ORC         -- (Note: Available in Hive 0.11.0 and later)
      | PARQUET     -- (Note: Available in Hive 0.13.0 and later)
      | AVRO        -- (Note: Available in Hive 0.14.0 and later)
      | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
    
    constraint_specification:
      : [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE ]
        [, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES table_name(col_name, ...) DISABLE NOVALIDATE 

    一、创建表方式1

    create table hive.emp(
    empno int, 
    ename string, 
    job string, 
    mgr int, 
    hiredate string, 
    sal double, 
    comm double, 
    deptno int
    )
    COMMENT 'The table belong to hive database'
    row format delimited fields terminated by '	';

    创建了一个emp表,这个表存属于hive数据库,如果不指定就默认属于default数据库。还为这张表加了注释(The table belong to hive database),指定字段与字段之间的分隔符为 。

    下面将emp.txt文件内容加载到emp中

     [root@hadoop001 data]# cat emp.txt
    7369    SMITH   CLERK   7902    1980-12-17      800.00          20
    7499    ALLEN   SALESMAN        7698    1981-2-20       1600.00 300.00  30
    7521    WARD    SALESMAN        7698    1981-2-22       1250.00 500.00  30
    7566    JONES   MANAGER 7839    1981-4-2        2975.00         20
    7654    MARTIN  SALESMAN        7698    1981-9-28       1250.00 1400.00 30
    7698    BLAKE   MANAGER 7839    1981-5-1        2850.00         30
    7782    CLARK   MANAGER 7839    1981-6-9        2450.00         10
    7788    SCOTT   ANALYST 7566    1987-4-19       3000.00         20
    7839    KING    PRESIDENT               1981-11-17      5000.00         10
    7844    TURNER  SALESMAN        7698    1981-9-8        1500.00 0.00    30
    7876    ADAMS   CLERK   7788    1987-5-23       1100.00         20
    7900    JAMES   CLERK   7698    1981-12-3       950.00          30
    7902    FORD    ANALYST 7566    1981-12-3       3000.00         20
    7934    MILLER  CLERK   7782    1982-1-23       1300.00         10
    8888    HIVE    PROGRAM 7839    1988-1-23       10300.00   

    使用load加载数据

    hive> load data local inpath '/root/data/emp.txt' overwrite into table hive.emp;
    Loading data to table hive.emp
    OK
    Time taken: 2.296 seconds

    此时查看hive表已有了数据了

    hive> select * from hive.emp;
    OK
    7369    SMITH   CLERK   7902    1980-12-17      800.0   NULL    20
    7499    ALLEN   SALESMAN        7698    1981-2-20       1600.0  300.0   30
    7521    WARD    SALESMAN        7698    1981-2-22       1250.0  500.0   30
    7566    JONES   MANAGER 7839    1981-4-2        2975.0  NULL    20
    7654    MARTIN  SALESMAN        7698    1981-9-28       1250.0  1400.0  30
    7698    BLAKE   MANAGER 7839    1981-5-1        2850.0  NULL    30
    7782    CLARK   MANAGER 7839    1981-6-9        2450.0  NULL    10
    7788    SCOTT   ANALYST 7566    1987-4-19       3000.0  NULL    20
    7839    KING    PRESIDENT       NULL    1981-11-17      5000.0  NULL    10
    7844    TURNER  SALESMAN        7698    1981-9-8        1500.0  0.0     30
    7876    ADAMS   CLERK   7788    1987-5-23       1100.0  NULL    20
    7900    JAMES   CLERK   7698    1981-12-3       950.0   NULL    30
    7902    FORD    ANALYST 7566    1981-12-3       3000.0  NULL    20
    7934    MILLER  CLERK   7782    1982-1-23       1300.0  NULL    10
    8888    HIVE    PROGRAM 7839    1988-1-23       10300.0 NULL    NULL
    Time taken: 2.762 seconds, Fetched: 15 row(s)

    二、创建表方式2 
    创建一个和emp结构和数据相同的表emp2

    create table emp2 as  select * from emp;
    hive> select * from  emp2;
    OK
    7369    SMITH   CLERK   7902    1980-12-17      800.0   NULL    20
    7499    ALLEN   SALESMAN        7698    1981-2-20       1600.0  300.0   30
    7521    WARD    SALESMAN        7698    1981-2-22       1250.0  500.0   30
    7566    JONES   MANAGER 7839    1981-4-2        2975.0  NULL    20
    7654    MARTIN  SALESMAN        7698    1981-9-28       1250.0  1400.0  30
    7698    BLAKE   MANAGER 7839    1981-5-1        2850.0  NULL    30
    7782    CLARK   MANAGER 7839    1981-6-9        2450.0  NULL    10
    7788    SCOTT   ANALYST 7566    1987-4-19       3000.0  NULL    20
    7839    KING    PRESIDENT       NULL    1981-11-17      5000.0  NULL    10
    7844    TURNER  SALESMAN        7698    1981-9-8        1500.0  0.0     30
    7876    ADAMS   CLERK   7788    1987-5-23       1100.0  NULL    20
    7900    JAMES   CLERK   7698    1981-12-3       950.0   NULL    30
    7902    FORD    ANALYST 7566    1981-12-3       3000.0  NULL    20
    7934    MILLER  CLERK   7782    1982-1-23       1300.0  NULL    10
    8888    HIVE    PROGRAM 7839    1988-1-23       10300.0 NULL    NULL
    Time taken: 0.189 seconds, Fetched: 15 row(s)

    三、创建表方式3 
    创建一个和emp相同结构的表emp3

    hive (hive)> create table emp3 like emp;
    OK
    Time taken: 0.992 seconds

    like 只复制结构,不复制内容

    四、删除表

    hive (hive)> drop table emp2;
    OK
    Time taken: 0.197 seconds

    五、清除表中数据,保留结构

    hive (hive)> truncate table emp2;
    OK
    Time taken: 0.197 seconds
    原文 :http://blog.csdn.net/gavin_chun/article/details/78009340



  • 相关阅读:
    Hadoop安装教程_伪分布式
    上课老师讲的数据交换你听懂了吗
    上次的计网络课你是不是又旷课了
    网络数据通信技术
    来,让我们一起来学习VIM
    Hadoop安装教程_单机(含Java、ssh安装配置)
    win10无法使用VMwareWorkstation的解决办法
    VMwareWorkstation如何设置共享文件夹
    Ubuntu16.04安装Vmware Tools
    虚拟机的vmnet8网卡找不到了
  • 原文地址:https://www.cnblogs.com/kxgdby/p/7956941.html
Copyright © 2011-2022 走看看