。
(点)算子
适用于:砖的SQL砖运行时
返回一个fieldIdentifier
值在一个结构体
或一个值keyIdentifier
在一个地图
。
返回
一个类型匹配的fieldIdentifier
或的类型mapExpr
值。
解决的名字优先于解决这个操作符。给定一系列的标识符隔开点,砖将解决最长的可能的限定名称。如果名字是解决地图
或结构体
砖将剩下的标识符使用点符号操作符。
当使用一个结构体
,砖验证的存在fieldIdentifier
在结构体声明被编译。
当使用一个地图
,没有相匹配的关键keyIdentifier
砖,返回null。返回零
而不是使用try_element_at函数。
警告
在砖运行时,如果spark.sql.ansi.enabled是假
,结果是零
如果没有找到匹配的关键mapExpr
。
例子
——名称优先于点标志符>创建模式;>创建表。(一个struct < INT, b字符串>);>插入。值(named_struct (' a ' 5 ' b ',“火花”));——列a表a >中选择一个。从一位;{“a”: 5,“b”:“火花”},字段“b”列a >选择一个。从一位b;火花——列”“表”。“>选择一位。从一位;{“a”: 5,“b”:“火花”},字段“a”列的“表”。“>选择a.a.a。从一位;5,解决地图价值:>选择地图(“三”,3).three; 3 -- Resolving a map value using the [ ] notation: > SELECT map('three', 3)['three'] 3 -- Resolving a map value using back quotes: > SELECT map('서울시', 'Seoul').`서울시`; Seoul -- Cannot resolve a non existing key > SELECT map('three', 3).four; NULL