(點)算子

適用於:檢查標記是的磚的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