。
(點)算子
適用於:磚的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