explode funkcja generatora wartości tabeli

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

Zwraca zestaw wierszy przez anulowanie zagnieżdżania collection.

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(collection)

Argumenty

  • collection: wyrażenie ARRAY lub MAP .

Zwraca

Zestaw wierszy składający się z elementów tablicy lub kluczy i wartości mapy. Kolumna utworzona przez explode tablicę ma nazwę col. Kolumny mapy są wywoływane i keyvalue.

Jeśli collection nie są NULL generowane żadne wiersze.

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

    explode Można umieścić na SELECT liście tylko jako element główny wyrażenia lub po WIDOKU LATERAL. Podczas umieszczania funkcji na SELECT liście nie może istnieć żadna inna funkcja generatora na tej samej SELECT liście 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 SELECT lista jest przestarzała. Zamiast tego należy wywołać explode jako table_reference.

Przykłady

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

> SELECT explode(array(10, 20)) AS elem, 'Spark';
 10 Spark
 20 Spark

> SELECT explode(map(1, 'a', 2, 'b')) AS (num, val), 'Spark';
 1   a   Spark
 2   b   Spark

> SELECT explode(array(1, 2)), explode(array(3, 4));
  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 elem, 'Spark' FROM explode(array(10, 20)) AS t(elem);
 10 Spark
 20 Spark

> SELECT num, val, 'Spark' FROM explode(map(1, 'a', 2, 'b')) AS t(num, val);
 1   a   Spark
 2   b   Spark

> SELECT * FROM explode(array(1, 2)), explode(array(3, 4));
 1   3
 1   4
 2   3
 2   4

-- Using lateral correlation in Databricks 12.2 and above
> SELECT * FROM explode(array(1, 2)) AS t, LATERAL explode(array(3 * t.col, 4 * t.col));
 1   3
 1   4
 2   6
 2   8