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