在Hive中使用带有表的所有列的named_struct函数.

bou*_*472 7 hadoop hive

在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'}
...
Run Code Online (Sandbox Code Playgroud)

但是,为了制作列表,我需要明确地编写每个列名.有没有办法避免使用其中任何一个named_struct或其他类似功能?

我希望能够写出类似的东西(假设users只有三列).

$hive> select id, named_struct(*) as list from users;
Run Code Online (Sandbox Code Playgroud)

Sou*_*jan 0

由于您正在使用所有列,因此不需要命名结构。类似的东西struct("*")会起作用。