我想使用select语句在配置单元中创建一个表,该语句从另一个表中获取数据的子集。我使用了以下查询:
create table sample_db.out_table as
select * from sample_db.in_table where country = 'Canada';
当我查看这个表的hdfs位置时,没有字段分隔符。
但我需要创建一个表,其中包含来自另一个表的过滤数据以及字段分隔符。例如,我试图做一些类似于:
create table sample_db.out_table as
select * from sample_db.in_table where country = 'Canada'
ROW FORMAT SERDE
FIELDS TERMINATED BY '|';
但这是行不通的。我知道另一种方法是用字段名和“以“|”终止的字段”命令创建一个表结构,然后加载数据。
但是,有没有其他方法可以将这两种方法组合到一个查询中,使我能够使用另一个表中的筛选数据以及字段分隔符创建一个表呢?
2条答案
按热度按时间luaexgnf1#
放
row format delimited ..
在前面AS select
像这样做将查询更改为您的查询这是结果
bwitn5fc2#
正如您在文档中看到的,当使用ctas(createtableasselect)语句时
ROW FORMAT
语句(实际上,与新表相关的所有设置)在SELECT
声明。