inline_outer
funkcja generatora wartości tabeli
Dotyczy: Databricks SQL
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 NULL
s dla każdej kolumny jest generowany.
Dotyczy:
Databricks Runtime 12.1 i starsze:
inline_outer
można umieścić tylko na liścieSELECT
jako początek wyrażenia lub po LATERAL VIEW. Podczas umieszczania funkcji na liścieSELECT
nie może istnieć żadna inna funkcja generatora na tej samej liścieSELECT
lub UNSUPPORTED_GENERATOR. MULTI_GENERATOR jest podniesiona.Dotyczy:
Databricks SQL
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: 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: Databricks SQL
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