Sdílet prostřednictvím


variant_explode tabulková hodnotová funkce

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 15.3 a novější

Vrátí sadu řádků rozbalením input.

V Databricks SQL a Databricks Runtime 16.1 a vyšší tato funkce podporuje pojmenované vyvolání parametru.

Syntaxe

variant_explode ( input )

Argumenty

  • variantExpr VARIANT: Výraz představující VARIANT objekt nebo VARIANT ARRAY.

Návraty

Sada řádků složená z prvků VARIANT ARRAYnebo klíčů a hodnot objektu VARIANT. Sloupce vytvořené variant_explode jsou:

  • pos INT
  • key STRING
  • value VARIANT.

Při explodování objektu VARIANT představují výstupní key a value sloupce klíče a hodnoty objektu. Při rozbalení pole VARIANT je výstup key vždy NULLa sloupec value představuje prvky pole.

Pokud input je NULL, nebo není VARIANT ARRAY objekt nebo VARIANT objekt, nejsou vytvořeny žádné řádky. Pokud chcete v tomto případě vytvořit jeden řádek NULL hodnot, použijte funkci variant_explode_outer.

Příklady

-- Simple example
> SELECT *
   FROM variant_explode(parse_json('[1, "a", {"b": "hello"}]'));
  pos  key  value
  ---  ---- -------------
    0  NULL 1
    1  NULL "a"
    2  NULL {"b":"hello"}

> SELECT *
    FROM variant_explode(parse_json('{"foo":1,"bar":"hello"}'));
  pos  key  value
  ---  ---- -------------
    0  bar  "hello"
    1  foo  1

-- Using lateral correlation
> SELECT t.value AS outer, u.value AS inner
    FROM variant_explode(parse_json('[[1, 2], [3, 4]]')) AS t,
    LATERAL variant_explode(t.value) AS u;
  outer inner
  ----- -----
  [1,2]     1
  [1,2]     2
  [3,4]     3
  [3,4]     4