【发布时间】:2019-02-07 19:43:36
【问题描述】:
我有一个字段,其中包含一个固定长度的 id 的简短列表。
例如aab:aac:ada:afg
该字段旨在容纳最多 5 个 id,逐渐增长。我通过从可能与我现有集合部分重叠的类似构造字段添加来更新它,例如ada:afg:fda:kfc.
当连接到“更新”表时,该字段会扩展,如下例所示。
这里,id_list 是我想要“合并”的上述列表,而 table_update 是我想要“合并”到 table1 中的具有新值的表。
insert overwrite table table1
select
id,
field1,
field2,
case
when (some condition) then a.id_list
else merge(a.id_list, b.id_list)
end as id_list
from table1 a
left join
table_update b
on a.id = b.id;
我想生成一个具有以下值的组合字段:
aab:aac:ada:afg:fda.
挑战在于,在执行之前我不知道字符串是否重叠或重叠多少,而且我无法运行任何外部代码或创建 UDF。
有什么建议可以解决这个问题吗?
【问题讨论】: