することは可能ですか
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 '|';
言語マニュアルはそうではないように見える..しかし、私が過去にこれを達成したことを私がくすぐった。
Hiveではselect(CTAS)としてテーブルを作成できます
以下のコマンドを試すことができます:
CREATE TABLE new_test
row format delimited
fields terminated by '|'
STORED AS RCFile
AS select * from source where col=1
Hiveでも同様のテーブルを作成できます。
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')
person
のようなemployee
テーブルを作成するには
CREATE TABLE person LIKE employee;
person
のようなemployee
外部テーブルを作成するには
CREATE TABLE person LIKE employee LOCATION 'maprfs:/user/hadoop/data/person';
次に、DESC person;
を使用して、新しく作成されたテーブルスキーマを確認します。