如何在配置单元插入查询中忽略输入开始
Posted
技术标签:
【中文标题】如何在配置单元插入查询中忽略输入开始【英文标题】:How to ignore start on input in hive insert query 【发布时间】:2017-07-11 20:32:06 【问题描述】:我有标签分隔的数据格式 州:ca city:california 人口:1M
我想创建数据库,当我插入时,我应该忽略“state:”、“city:”和“poulation”,我想将 state 插入到 state 数据库中,将 state 和 city 插入到 city 表中。
将有 2 个表格,然后一个带有州和人口,另一个带有城市和人口
CREATE EXTERNAL TABLE IF NOT EXISTS CSP.original
(
st STRING COMMENT 'State',
ct STRING COMMENT 'City',
po STRING COMMENT 'Population'
)
COMMENT 'Original Table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
这不起作用。它添加了评论,但没有忽略。 而且我还想为州和城市创建 2 个表。谁能帮帮我?
【问题讨论】:
您的问题非常令人困惑。请让我更清楚 【参考方案1】:您必须先创建外部表。
第一步:
CREATE EXTERNAL TABLE all_info (state STRING, population INT) PARTITIONED BY (date STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t;
第二步:
CREATE TABLE IF NOT EXISTS state (state string, population INT) PARTITIONED BY (date string);
CREATE TABLE IF NOT EXISTS city (city string, population INT) PARTITIONED BY (date string);
第三步:
INSERT OVERWRITE TABLE state
PARTITION (date = ‘201707076’)
SELECT *
FROM all_info
WHERE date = ‘20170706’ AND
instr(state, ‘state:’) = 1;
INSERT OVERWRITE TABLE city
PARTITION (date = ‘201707076’)
SELECT *
FROM all_info
WHERE date = ‘20170706’ AND
instr(state, ‘city:’) = 1;
【讨论】:
以上是关于如何在配置单元插入查询中忽略输入开始的主要内容,如果未能解决你的问题,请参考以下文章