explode_outer
funkcja generatora wartości tabeli
Dotyczy: Databricks SQL Databricks Runtime
Zwraca zestaw wierszy przez anulowanie zagnieżdżania collection
przy użyciu semantyki zewnętrznej.
W usługach Databricks SQL i Databricks Runtime 13.3 LTS i nowszych ta funkcja obsługuje wywołanie nazwanych parametrów.
Składnia
explode_outer(collection)
Argumenty
collection
: wyrażenieARRAY
lubMAP
.
Zwraca
Zestaw wierszy składający się z elementów tablicy lub kluczy i wartości mapy.
Kolumna utworzona przez explode_outer
tablicę ma nazwę col
.
Kolumny mapy są wywoływane i key
value
.
Jeśli collection
jest NULL
pojedynczym wierszem z NULL
s dla tablicy lub wartości mapy jest generowany.
Dotyczy: Databricks Runtime 12.1 i starsze:
explode_outer
Można umieścić naSELECT
liście tylko jako element główny wyrażenia lub po WIDOKU LATERAL. Podczas umieszczania funkcji naSELECT
liście nie może istnieć żadna inna funkcja generatora na tej samejSELECT
liście lub UNSUPPORTED_GENERATOR. MULTI_GENERATOR jest podniesiona .Dotyczy: Databricks SQL Databricks Runtime 12.2 LTS i nowsze:
Wywołanie z klauzuli LATERAL VIEW lub
SELECT
lista jest przestarzała. Zamiast tego należy wywołaćexplode_outer
jako table_reference.
Przykłady
Dotyczy: Databricks Runtime 12.1 i starsze:
> SELECT explode_outer(array(10, 20)) AS elem, 'Spark';
10 Spark
20 Spark
> SELECT explode_outer(collection => array(10, 20)) AS elem, 'Spark';
10 Spark
20 Spark
> SELECT explode_outer(map(1, 'a', 2, 'b')) AS (num, val), 'Spark';
1 a Spark
2 b Spark
> SELECT explode_outer(cast(NULL AS array<int>)), 'Spark';
NULL Spark
> SELECT explode_outer(array(1, 2)), explode_outer(array(3, 4));
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
Dotyczy: Databricks SQL Databricks Runtime 12.2 LTS i nowsze:
> SELECT elem, 'Spark' FROM explode_outer(array(10, 20)) AS t(elem);
10 Spark
20 Spark
> SELECT num, val, 'Spark' FROM explode_outer(map(1, 'a', 2, 'b')) AS t(num, val);
1 a Spark
2 b Spark
> SELECT * FROM explode_outer(array(1, 2)), explode_outer(array(3, 4));
1 3
1 4
2 3
2 4
> SELECT * FROM explode_outer(cast(NULL AS array<int>));
NULL
-- Using lateral correlation in Databricks 12.2 and above
> SELECT * FROM explode_outer(array(1, 2)) AS t, LATERAL explode_outer(array(3 * t.col, 4 * t.col));
1 3
1 4
2 6
2 8
Funkcje pokrewne
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla