Create hive table using “as select” or “like” and

2019-02-03 01:57发布

Is it possible to do a

create table <mytable> as select <query statement>

using

row format delimited fields terminated by '|';

or to do a

create table <mytable> like <other_table> row format delimited fields terminated by '|';

The Language Manual seems to indicate not.. but something tickles me I had achieved this in the past.

3条回答
Evening l夕情丶
2楼-- · 2019-02-03 02:33
create table newtable as select column1, column2, column3 from oldtable
查看更多
叛逆
3楼-- · 2019-02-03 02:34

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.

查看更多
够拽才男人
4楼-- · 2019-02-03 02:52

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.
查看更多
登录 后发表回答