如何从许多Hive表创建新的Hive表?我使用JSON字符串来创建原始表,而不确定如何创建新表

时间:2016-03-08 01:22:41

标签: json hadoop hive

如何从许多Hive表创建新的Hive表?我使用JSON字符串来创建原始表,而不确定如何创建新表。

create table Bank_F001_table as
select
    get_json_object(Bank_F001.json, '$.text') as text,
    get_json_object(Bank_F001.json, '$.coordinates') as coordinates,
    get_json_object(Bank_F001.json, '$.user.location') as location,
    get_json_object(Bank_F001.json, '$.lang') as lang,
    get_json_object(Bank_F001.json, '$.user_mentions') as user_mentions,
    get_json_object(Bank_F001.json, '$.user.screen_name') as screen_name,
    get_json_object(Bank_F001.json, '$.user.name') as name,
    get_json_object(Bank_F001.json, '$.listed_count') as listed_count,
    get_json_object(Bank_F001.json, '$.in_reply_to_user_id_str') as in_reply_to_user_id_str
from Bank_F001;

只是想添加,我使用UNION ALL来选择成功的属性。但是我无法创建用于其他活动的新表。奇怪的是,我也尝试过UNION(不是全部),Hive告诉我需要使用ALL。 这是我的选择代码....

select *
from BMO_F016_table
union all
select *
from BMO_F017_table
union all
select *
from BMO_F018_table
union all
select *
from BMO_F054_table ) as large_table
group by screen_name
order by cnt desc;

1 个答案:

答案 0 :(得分:0)

出于某种原因,它不起作用,但我想出来......万一你感兴趣,在这里你去......

CREATE TABLE BMO_Table as
SELECT *
FROM BMO_F016_table
UNION ALL
SELECT *
FROM BMO_F017_table
UNION ALL
SELECT *
FROM BMO_F018_table
UNION ALL
SELECT *
FROM BMO_F054_table
UNION ALL
SELECT *
FROM BMO_F093_table
;