在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;