Udostępnij za pośrednictwem


inline_outer funkcja generatora wartości tabeli

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

Rozdziela tablicę struktur na tabelę z zastosowaniem semantyki OUTER.

W usługach Databricks SQL i Databricks Runtime 16.1 i nowszych ta funkcja obsługuje odwołanie do nazwanych parametrów .

Składnia

inline_outer(input)

Argumenty

  • input: wyrażenie ARRAY < STRUCT > .

Zestaw wierszy składający się z pól w elementach struktury tablicy input. Kolumny generowane przez inline są nazwami pól.

Jeśli input jest NULL pojedynczy wiersz z NULLs dla każdej kolumny jest generowany.

  • Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.1 i starsze:

    inline_outer można umieścić tylko na liście SELECT jako początek wyrażenia lub po LATERAL VIEW. Podczas umieszczania funkcji na liście SELECT nie może istnieć żadna inna funkcja generatora na tej samej liście SELECT lub UNSUPPORTED_GENERATOR. MULTI_GENERATOR jest podniesiona.

  • Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.2 LTS i nowsze:

    Wywołanie z klauzuli LATERAL VIEW lub z listy SELECT jest przestarzałe. Zamiast tego należy wywołać inline_outer jako table_reference.

Przykłady

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.1 i starsze:

> SELECT inline_outer(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL

> SELECT inline_outer(array(struct(1, 'a'), struct(1, 'b'))),
         inline_outer(array(struct('c', 1.0), struct('d', 2.0))),
         'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.2 LTS i nowsze:

> SELECT i.*, 'Spark SQL'
    FROM inline_outer(array(struct(1, 'a'), struct(2, 'b'))) AS i;
 1  a Spark SQL
 2  b Spark SQL

> SELECT i1.*, i2.*, 'Spark SQL'
   FROM  inline_outer(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
         inline_outer(array(struct('c', 1.0), struct('d', 2.0))) AS i2;
 1      a       c       1.0     Spark SQL
 1      b       c       1.0     Spark SQL
 1      a       d       2.0     Spark SQL
 1      b       d       2.0     Spark SQL