在配置单元的外部表中插入逗号分隔数据

时间:2016-05-19 16:00:55

标签: hadoop hive hdfs external-tables

create external table transaction_usa_canada
(
tran_id int,
acct_id int,
tran_date string,
amount double,
description string,
branch_code string,
product string,
tran_state string,
tran_city string,
speendby string,
tran_zip int,
source_table string
)
row format delimited
stored as textfile
location '/user/DSNew18/Bank_DS18/tran_usa_canada';




INSERT INTO TABLE myproject.transaction_usa_canada 
SELECT tran_id, acct_id, tran_date, amount, description, branch_code,'', tran_state, tran_city, speendby, tran_zip, 'usa' AS source_table FROM transaction_usanew18
UNION ALL
SELECT tran_id, acct_id, tran_date, amount, description, branch_code,'', tran_state, tran_city, speendby, tran_zip, 'canada' AS source_table FROM transaction_canadanew18;

上面是我通过组合2个其他外部表插入到hive中的外部表的查询。一切都运行良好。问题是存储在表中的数据不是以逗号分隔的。为了以逗号分隔格式获取数据,我应该做些什么更改。

2 个答案:

答案 0 :(得分:1)

添加创建表

CREATE Table table(
 ....
)
row format delimited    
FIELDS TERMINATED BY ‘,’

答案 1 :(得分:0)

create external table transaction_usa_canada
(
tran_id int,
acct_id int,
tran_date string,
amount double,
description string,
branch_code string,
product string,
tran_state string,
tran_city string,
speendby string,
tran_zip int,
source_table string
)
row format delimited
fields terminated by ','
stored as textfile
location '/user/DSNew18/Bank_DS18/tran_usa_canada';




INSERT INTO TABLE myproject.transaction_usa_canada 
SELECT tran_id, acct_id, tran_date, amount, description, branch_code,'', tran_state, tran_city, speendby, tran_zip, 'usa' AS source_table FROM transaction_usanew18
UNION ALL
SELECT tran_id, acct_id, tran_date, amount, description, branch_code,'', tran_state, tran_city, speendby, tran_zip, 'canada' AS source_table FROM transaction_canadanew18;

使用上面的代码以逗号分隔数据。