使用“as select”或“like”创建配置单元表,并指定分隔符

时间:2014-03-07 12:10:35

标签: hive sql-like create-table

是否可以做

create table <mytable> as select <query statement>

使用

row format delimited fields terminated by '|';

或做

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

“语言手册”似乎没有表明......但是我曾经在过去做过这件事。“/ p>

3 个答案:

答案 0 :(得分:73)

  

在Hive中创建表格为选择(CTAS)。

您可以尝试以下命令:

CREATE TABLE new_test 
row format delimited 
fields terminated by '|' 
STORED AS RCFile 
AS select * from source where col=1
  1. 目标不能是分区表。
  2. 目标不能是外部表格。
  3. 它复制结构和数据
  4.   

    在Hive中也可以创建表格。

    1. 它只是复制源表定义。

答案 1 :(得分:2)

假设我们有一个名为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. 创建person表格,如employee

    CREATE TABLE person LIKE employee;

  2. 创建person外部表格,如employee

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

  3. 然后使用 DESC person; 查看新创建的表架构。

答案 2 :(得分:0)

以上提供的答案都可以。

  1. 从员工中选择*作为创建表人员;
  2. 创建表的人,例如雇员;