我是数据工程的新手,所以这可能是一个基本问题,在此感谢您的帮助。
我有一个以下格式的文件-
first_name=A1 last_name=B1 city=Austin state=TX Zip=78703
first_name=A2 last_name=B2 city=Seattle state=WA
注意:第二行没有邮政编码。
我需要以以下格式将其上传到Hive:
First_name Last_name City State Zip
A1 B1 Austin TX 78703
A2 B2 Seattle WA NULL
谢谢你的帮助!!
我在Hive中找到了实现此目的的方法。想法是首先将整个数据上载到* 1表中(n是行数),然后在第二步中使用str_to_map函数解析键名。
第1步:将所有数据上传到1列表中。输入您确定不会解析数据并且不存在的定界符(在这种情况下为\ 002)
DROP TABLE IF EXISTS kv_001;
CREATE EXTERNAL TABLE kv_001 (
col_import string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\002'
LOCATION 's3://location/directory/';
步骤2:使用str_to_map函数,提取所需的键
DROP TABLE IF EXISTS required_table;
CREATE TABLE required_table
(first_name STRING
, last_name STRING
, city STRING
, state STRING
, zip INT);
INSERT OVERWRITE TABLE required_table
SELECT
params["first_name"] AS first_name
, params["last_name"] AS last_name
, params["city"] AS city
, params["state"] AS state
, params["zip"] AS zip
FROM
(SELECT str_to_map(col_import, '\001', '=') params FROM kv_001) A;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句