Udostępnij za pośrednictwem


. (znak kropkowy) — operator

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

fieldIdentifier Zwraca wartość w STRUCT wartości lub według keyIdentifier w obiekcie MAP.

Składnia

structExpr . fieldIdentifier

mapExpr . keyIdentifier

Argumenty

  • structExpr STRUCT: wyrażenie.
  • fieldIdentifier : identyfikator pola w programie structExpr.
  • mapExpr MAP: wyrażenie z kluczami typu STRING.
  • keyIdentifier : identyfikator pasujący do wartości klucza w obiekcie mapExpr.

Zwraca

Typ pasujący do fieldIdentifier typu lub typu mapExpr wartości.

Rozpoznawanie nazw ma pierwszeństwo przed rozpoznawaniem tego operatora. Oznacza to, że w przypadku serii identyfikatorów oddzielonych kropkami usługa Azure Databricks rozpozna najdłuższą możliwą kwalifikowaną nazwę. Jeśli rozpoznana nazwa to lub MAPSTRUCT usługa Azure Databricks zinterpretuje pozostałe identyfikatory przy użyciu operatora znaku kropkowego.

W przypadku użycia z elementem STRUCTusługa Azure Databricks weryfikuje istnienie fieldIdentifier obiektu w strukturę, gdy instrukcja jest kompilowana.

W przypadku użycia z elementem i nie ma klucza zgodnego MAPkeyIdentifierz usługą , usługa Azure Databricks zwraca wartość null. Aby zamiast tego użyć NULLfunkcji try_element_at.

Ostrzeżenie

Jeśli w środowisku Databricks Runtime spark.sql.ansi.enabled to false, wynikiem jest NULL to, czy nie znaleziono pasującego klucza dla elementu mapExpr.

Przykłady

-- Names take precedence over the dot sign operator
> CREATE SCHEMA a;
> CREATE TABLE a.a(a struct<a INT, b STRING>);
> INSERT INTO a.a VALUES (named_struct('a', 5, 'b', 'Spark'));

-- Column `a` in table `a`
> SELECT a.a FROM a.a;
  {"a":5,"b":"Spark"}

-- Field `b` in column `a`
> SELECT a.b FROM a.a;
  Spark

-- Column `a` in table `a.a`
> SELECT a.a.a FROM a.a;
  {"a":5,"b":"Spark"}

-- Field `a` in column `a` in table `a.a`
> SELECT a.a.a.a FROM a.a;
  5

-- Resolving a map value:
> SELECT map('three', 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