Create hive table using “as select” or “like” and also specify delimiter

后端 未结 3 1174
粉色の甜心
粉色の甜心 2020-12-14 00:21

Is it possible to do a

create table as select

using

row format delimited fields termi         


        
相关标签:
3条回答
  • 2020-12-14 00:55

    Let's say we have an external table called employee

    hive> SHOW CREATE TABLE employee;
    OK
    CREATE EXTERNAL TABLE employee(
      id string,
      fname string,
      lname string, 
      salary double)
    ROW FORMAT SERDE
      'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
    WITH SERDEPROPERTIES (
      'colelction.delim'=':',
      'field.delim'=',',
      'line.delim'='\n',
      'serialization.format'=',')
    STORED AS INPUTFORMAT
      'org.apache.hadoop.mapred.TextInputFormat'
    OUTPUTFORMAT
      'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
    LOCATION
      'maprfs:/user/hadoop/data/employee'
    TBLPROPERTIES (
      'COLUMN_STATS_ACCURATE'='false',
      'numFiles'='0',
      'numRows'='-1',
      'rawDataSize'='-1',
      'totalSize'='0',
      'transient_lastDdlTime'='1487884795')
    
    1. To create a person table like employee

      CREATE TABLE person LIKE employee;

    2. To create a person external table like employee

      CREATE TABLE person LIKE employee LOCATION 'maprfs:/user/hadoop/data/person';

    3. then use DESC person; to see the newly created table schema.

    0 讨论(0)
  • 2020-12-14 00:58

    Create Table as select (CTAS) is possible in Hive.

    You can try out below command:

    CREATE TABLE new_test 
        row format delimited 
        fields terminated by '|' 
        STORED AS RCFile 
    AS select * from source where col=1
    
    1. Target cannot be partitioned table.
    2. Target cannot be external table.
    3. It copies the structure as well as the data

    Create table like is also possible in Hive.

    1. It just copies the source table definition.
    0 讨论(0)
  • 2020-12-14 01:07

    Both the answers provided above work fine.

    1. CREATE TABLE person AS select * from employee;
    2. CREATE TABLE person LIKE employee;
    0 讨论(0)
提交回复
热议问题