Sdílet prostřednictvím


funkce se seznamem hodnot variant_explodeatable

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

Rozvine inputa vrátí set řádků.

Ve verzi Databricks Runtime 16.1 a novější tato funkce podporuje volání pojmenovaných parametrů.

Syntaxe

variant_explode ( input )

Argumenty

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

Návraty

set řádků složených z prvků VARIANT ARRAYnebo klíčů a values objektu VARIANT. columns, které produkoval variant_explode, jsou:

  • pos INT
  • key STRING
  • value VARIANT.

Při rozbalení objektu VARIANT představují výstupní key a valuecolumns klíče a values objektu. Při rozbalení pole VARIANT je výstup key vždy NULLa výstup valuecolumn 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 NULLvalues, 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