8、Struct函数
0、概述
Struct类型,就类似于Java中的对象
函数 | 功能 |
---|---|
FIELD | 获取STRUCT中的成员变量的取值。 |
INLINE | 将指定的STRUCT数组展开。每个数组元素对应一行,每行每个STRUCT元素对应一列。 |
NAMED_STRUCT | 使用给定的Name、Value列表建立STRUCT。 |
STRUCT | 使用给定Value列表建立STRUCT。 |
1、Struct函数
FIELD
:获取STRUCT中的成员变量的取值。
T field(struct <s>, string <fieldName>)
-- {f1:hello, f2:3}
SELECT named_struct('f1', 'hello', 'f2', 3);
-- hello
select field(named_struct('f1', 'hello', 'f2', 3), 'f1');
INLINE
:将指定的STRUCT数组展开。每个数组元素对应一行,每行每个STRUCT元素对应一列。
inline(array<struct<f1:T1, f2:T2[, ...]>>)
SELECT inline(array(
named_struct('user',001,'name','张三','age',18)
,named_struct('user',002,'name',"李四",'age',28)
));
user name age
1 张三 18
2 李四 28
NAMED_STRUCT
:使用给定的Name、Value列表建立STRUCT。
struct named_struct(string <name1>, T1 <value1>, string <name2>, T2 <value2>[, ...])
-- {user:1, name:张三, age:18}
SELECT named_struct('user',001,'name','张三','age',18);
STRUCT
:使用给定Value列表建立STRUCT。
struct struct(<value1>,<value2>[, ...])
-- {col1:张三, col2:李四, col3:王五, col4:18}
SELECT struct('张三','李四','王五',18);