在Hive中使用named_struct函数来处理表的所有列

问题描述 投票:0回答:1

在 Hive 中,您可以使用函数

named_struct
来创建键值对列表;键通常是列名,值是相应列中的值。例如,

$hive> select id, named_struct('foo', name, 'address', address) as list from users;
id list
1  {'foo':'Alice', 'address':'Wonderland'}
2  {'foo':'Bob', 'address':'Portland'}
...

但是,为了制作列表,我需要显式地写入每个列名称。有什么方法可以避免使用

named_struct
或其他类似的函数执行此操作吗?

我希望能够写出类似的东西(假设

users
只有三列)。

$hive> select id, named_struct(*) as list from users;
hadoop hive
1个回答
0
投票

由于您正在使用所有列,因此不需要命名结构。像

struct("*")
这样的东西会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.