向struct类型的impala表中插入数据



我有一个包含详细行的表(1行和多行)。出于这个原因,我创建了一个具有结构类型的表,以便减少行并使它们成为1 id 1行。

如何将数据插入到结构类型的impala表中?另外,如何在结构类型的值之后进行聚合?

代替使用struct来存储多个值,您可以使用group_concat(col, separator)

例如,如果一个客户有3个账号,您想将它们存储在一行中,用逗号分隔,您可以使用下面的代码-

select cust_id, name, group_concat(cust_acc,',') as concat_account
from cust_details
group by 1,2

如果数据中有逗号,可以使用pipe。
上述解决方案的另一个好处是,您可以使用split_part(concat_account,',',1)获得第一个帐号。

现在,如果你的数据非常复杂,你不能使用group concat,你可以使用struct。这有点棘手,因为您必须首先以struct格式准备数据,然后加载它们。请参阅下面的链接-如何插入数组英帕拉的价值?

最新更新