在Hive表中,我有列(都具有字符串数据类型)
CustomerId,姓名,性别
Name数据类型是格式为
的字符串{'firstname': 'XXXXXX', 'middlename': 'YYYYYY', 'lastname': 'ZZZZZZ'}
另外,某些行缺少中间名-
CustomerId, {'firstname': 'AAAAAA', 'lastname': 'BBBBB'}, Gender
我想创建一个新表并填充以下各列-
CustomerId, firstname, middlename, lastname , Gender.
如果不存在值,则中间名将为null /空格。能否请你帮忙?
答案 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;