当前位置: 代码迷 >> 综合 >> hive 拼接两个json字符串 成一个
  详细解决方案

hive 拼接两个json字符串 成一个

热度:88   发布时间:2023-12-12 20:40:06.0
假设 表table_name 有三个字段 company_id, distinct_id, labels(json)
要往labels里直接加 json键值对:insert overwrite table table_name
selecta.company_id,cast(current_timestamp()as string) as distinct_id,concat(concat_ws(",",concat("{",substr(a.new_json,2,length(a.new_json)-2)),if(old_json = '' ,null,old_json)),'}') as labels
from (
selecta.company_id,xxb.to_json(named_struct('is_canceled','正常')) as new_json, --新增json 键值对 substr(a.labels,2,length(a.labels)-2) as old_json --旧有键值对
from table_name a
) a ;注:如果没有to_json的udf函数,new_json 直接用{'is_canceled':'正常'} 就行