配置单元将字符串解析为列

时间:2018-12-02 07:11:29

标签: hive hiveql

在Hive表中,我有列(都具有字符串数据类型)

CustomerId,姓名,性别

Name数据类型是格式为

的字符串
{'firstname': 'XXXXXX', 'middlename': 'YYYYYY',  'lastname': 'ZZZZZZ'}

另外,某些行缺少中间名-

CustomerId, {'firstname': 'AAAAAA', 'lastname': 'BBBBB'}, Gender 

我想创建一个新表并填充以下各列-

CustomerId, firstname, middlename, lastname , Gender. 

如果不存在值,则中间名将为null /空格。能否请你帮忙?

1 个答案:

答案 0 :(得分:0)

那些不是有效的JSON字符串,请使用双引号而不是单引号,然后可以使用JSON_TUPLE()来提取字段。

CREATE TABLE yournewtable AS
 SELECT customerid,
       firstname,
       middlename,
       lastname,
       gender
FROM yourtable lateral view 
  json_tuple(Name,'firstname','middlename','lastname') 
j as firstname, middlename,lastname;