У меня есть таблица ниже, из которой мне нужно получить отдельный account_id со всеми строками в оставшихся 2 столбцах как карту Пожалуйста, помогите мне исправить это, спасибо
Input
| account_id | fl_group_id | fl_group_value |
+----------------+----------------------+-------------------------+
| 1152956260987 | 10 | 983 |
| 1152956260987 | 12 | 2144 |
| 1152956260987 | 1 | 82 |
Ожидаемый результат
| account_id | account_flg
+----------------+----------------------
| 1152956260987 | {"10":"983","12":"2144","1":"82"}
Я пробовал следующий запрос в улье
create table wf_test2 as select account_id, map(fl_group_id,fl_group_value) as account_flags from wf_test ;
select a.account_id,collect_set(a.account_flags)as account_flags from wf_test2 a where a.account_id='1152956260987' group by a.account_id ;
Но я получаю вывод как array<map<string,string>>
вместо map<string,string>
| 1152956260987 | [{"10":"983"},{"12":"2144"},{"1":"82"}] |
Показать таблицу создания wf_test2
CREATE TABLE `wf_test2`(
`account_id` string,
`account_flags` map<string,string>)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
'hdfs://hive/wf_test2'
TBLPROPERTIES (
'bucketing_version'='2',
'transactional'='true',
'transactional_properties'='default',
'transient_lastDdlTime'='1596648078')