إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime
إرجاع الصفوف عن طريق إلغاء تداخل الصفيف مع ترقيم المواضع باستخدام OUTER الدلالات.
بناء الجملة
posexplode_outer(expr)
الوسيطات
expr: صفيف أو تعبير MAP.
المرتجعات
مجموعة من الصفوف تتكون من الموضع وعناصر الصفيف أو مفاتيح الخريطة وقيمها.
تتم تسمية pos الأعمدة التي ينتجها posexplode_outer صفيف باسم وcol.
تسمى posأعمدة الخريطة وkey.value
إذا كان expr ، NULLصفا واحدا مع NULLs لقيم الصفيف أو الخريطة.
ينطبق على:
Databricks Runtime 12.1 والإصدارات السابقة:posexplode_outerيمكن وضعها فقط فيSELECTالقائمة كجذر لتعبير أو اتباع طريقة عرض LATERAL. عند وضع الدالة فيSELECTالقائمة، يجب ألا تكون هناك دالة مولد أخرى في نفسSELECTالقائمة أو UNSUPPORTED_GENERATOR. يتم رفع MULTI_GENERATOR.ينطبق على:
Databricks SQL
Databricks Runtime 12.2 LTS وما فوق:يتم إهمال الاستدعاء من عبارة LATERAL VIEW أو
SELECTالقائمة. بدلا من ذلك، استدعposexplode_outerك table_reference.
الأمثلة
ينطبق على:
Databricks Runtime 12.1 والإصدارات السابقة:
> SELECT posexplode_outer(array(10, 20)) AS elem, 'Spark';
0 10 Spark
1 20 Spark
> SELECT posexplode_outer(map(1, 'a', 2, 'b')) AS (num, val), 'Spark';
0 1 a Spark
1 2 b Spark
> SELECT posexplode_outer(array(1, 2)), posexplode_outer(array(3, 4));
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
ينطبق على:
Databricks SQL
Databricks Runtime 12.2 LTS وما فوق:
> SELECT pos, col FROM posexplode_outer(array(10, 20));
0 10
1 20
> SELECT pos, key, value FROM posexplode_outer(map(10, 'a', 20, 'b'));
0 10 a
1 22 b
> SELECT p1.*, p2.* FROM posexplode_outer(array(1, 2)) AS p1, posexplode_outer(array(3, 4)) AS p2;
0 1 0 3
0 1 1 4
1 2 0 3
1 2 1 4
-- Using lateral correlation in Databricks 12.2 and above
> SELECT p1.*, p2.* FROM posexplode_outer(array(1, 2)) AS p1, LATERAL posexplode_outer(array(3 * p1.col, 4 * p1.col)) AS p2;
0 1 0 3
0 1 1 4
1 2 0 6
1 2 1 8