إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime
إرجاع مجموعة من الصفوف عن طريق إلغاء التداخل collection.
في Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق تدعم هذه الدالة استدعاء المعلمة المسماة.
بناء الجملة
explode(collection)
الوسيطات
collection: تعبيرARRAYأوMAP.
المرتجعات
مجموعة من الصفوف تتكون من عناصر الصفيف أو مفاتيح وقيم الخريطة.
يسمى colالعمود الذي تم إنتاجه بواسطة explode صفيف .
تسمى key أعمدة الخريطة و value.
إذا collection لم يتم NULL إنتاج صفوف. لإرجاع صف واحد مع NULLs لقيم الصفيف أو الخريطة، استخدم الدالة explode_outer().
ينطبق على:
Databricks Runtime 12.1 والإصدارات السابقة:explodeيمكن وضعها فقط فيSELECTالقائمة كجذر لتعبير أو اتباع طريقة عرض LATERAL. عند وضع الدالة فيSELECTالقائمة، يجب ألا تكون هناك دالة مولد أخرى في نفسSELECTالقائمة أو UNSUPPORTED_GENERATOR. يتم رفع MULTI_GENERATOR.ينطبق على:
Databricks SQL
Databricks Runtime 12.2 LTS وما فوق:يتم إهمال الاستدعاء من عبارة LATERAL VIEW أو
SELECTالقائمة. بدلا من ذلك، استدعexplodeك table_reference.
الأمثلة
ينطبق على:
Databricks SQL
Databricks Runtime 12.1 والإصدارات السابقة:
> 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
-- The difference between explode() and explode_outer() is that explode_outer() returns NULL if the array is NULL.
> SELECT explode_outer(c1) AS elem, 'Spark' FROM VALUES(array(10, 20)), (null) AS T(c1);
10 Spark
20 Spark
NULL Spark
> SELECT explode(c1) AS elem, 'Spark' FROM VALUES(array(10, 20)), (null) AS T(c1);
10 Spark
20 Spark
ينطبق على:
Databricks SQL
Databricks Runtime 12.2 LTS وما فوق:
> 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