explode_outer دالة منشئ قيم الجدول

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime

إرجاع مجموعة من الصفوف عن طريق إلغاء التداخل collection باستخدام الدلالات الخارجية.

في Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق تدعم هذه الدالة استدعاء المعلمة المسماة.

بناء الجملة

explode_outer(collection)

الوسيطات

  • collection: تعبير ARRAY أو MAP .

المرتجعات

مجموعة من الصفوف تتكون من عناصر الصفيف أو مفاتيح وقيم الخريطة. يسمى colالعمود الذي تم إنتاجه بواسطة explode_outer صفيف . تسمى key أعمدة الخريطة و value.

NULL إذا كان collection صفا واحدا مع NULLs لقيم الصفيف أو الخريطة يتم إنتاجه.

  • ينطبق على:وضع علامة Databricks Runtime 12.1 والإصدارات السابقة:

    explode_outer يمكن وضعها فقط في SELECT القائمة كجذر لتعبير أو اتباع طريقة عرض LATERAL. عند وضع الدالة في SELECT القائمة، يجب ألا تكون هناك دالة مولد أخرى في نفس SELECT القائمة أو UNSUPPORTED_GENERATOR. يتم رفع MULTI_GENERATOR.

  • ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 12.2 LTS وما فوق:

    يتم إهمال الاستدعاء من عبارة LATERAL VIEW أو SELECT القائمة. بدلا من ذلك، استدع explode_outer ك table_reference.

الأمثلة

ينطبق على:وضع علامة Databricks Runtime 12.1 والإصدارات السابقة:

> 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

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 12.2 LTS وما فوق:

> 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