(点)算子

适用于:检查标记是的砖的SQL检查标记是的砖运行时

返回一个fieldIdentifier值在一个结构体或一个值keyIdentifier在一个地图

语法

structExprfieldIdentifiermapExprkeyIdentifier

参数

  • structExpr:一个结构体表达式。

  • fieldIdentifier:一个标识符在领域内structExpr

  • mapExpr:一个地图表达式与键的类型字符串

  • keyIdentifier:一个标识符匹配的键值mapExpr

返回

一个类型匹配的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