Arrays 需要将结构类型分组到数组中
我有一个带有列结构的配置单元表。我需要运行一个查询来将该列的一些行收集到数组中 最终结果应该是struct的数组 我尝试过“collect_set”,但它给了我一个错误,即它不能用于复杂类型。我需要一些类似于mysql中的“group_concat” 你有什么想法,我如何实现这一点(最好不使用任何udf/udaf) 谢谢 更新: 我有一个使用UDAF的临时解决方案。但是我想知道是否可以使用内置函数。这是否有效Arrays 需要将结构类型分组到数组中,arrays,struct,hive,concat,collect,Arrays,Struct,Hive,Concat,Collect,我有一个带有列结构的配置单元表。我需要运行一个查询来将该列的一些行收集到数组中 最终结果应该是struct的数组 我尝试过“collect_set”,但它给了我一个错误,即它不能用于复杂类型。我需要一些类似于mysql中的“group_concat” 你有什么想法,我如何实现这一点(最好不使用任何udf/udaf) 谢谢 更新: 我有一个使用UDAF的临时解决方案。但是我想知道是否可以使用内置函数。这是否有效 SELECT collect_set(column_containing_struct
SELECT collect_set(column_containing_struct.struct_field_name) FROM your_table;
-- Or some variant of this
这需要考虑以下几点:
- 您的表包含一个名为“column_containing_struct”的列,该列包含一个struct
- 该列中的结构包含一个名为“struct\u field\u name”的字段
- 您试图做的是生成一个数组,其中包含结构的该字段中出现的所有唯一值
如果您不想进行重复数据消除,并且希望看到其中出现的所有内容,请使用
收集列表
。请包含您的代码,以便我们可以更轻松地提供帮助。不幸的是,它对我不起作用。最后我需要:数组。您的查询提供了什么array@maze2002啊,我现在更明白你的目标了。我很高兴看到你至少找到了一个暂时的解决办法。