【问题标题】: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 个表。谁能帮帮我?

【问题讨论】:

  • 您的问题非常令人困惑。请让我更清楚

标签: python mysql hadoop hive impala


【解决方案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;  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 2019-08-21
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多