Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 739
WestCoastProjects Avatar asked Mar 07 '14 12:03

WestCoastProjects


People also ask

How do you find the delimiter of a Hive table?

Try running a "show create table" command and it will show you the delimiter.

How do you create a table using Hive?

hive> CREATE TABLE IF NOT EXISTS employee ( eid int, name String, salary String, destination String) COMMENT 'Employee details' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' STORED AS TEXTFILE; If you add the option IF NOT EXISTS, Hive ignores the statement in case the table already exists.

What is delimiter in Hive?

Introduced in HIVE-5871, MultiDelimitSerDe allows user to specify multiple-character string as the field delimiter when creating a table.


1 Answers

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.
like image 59
Venkatesh Avatar answered Nov 20 '22 07:11

Venkatesh