إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime
يستخدم بالاقتران مع دوال المولد مثل EXPLODE، والذي ينشئ جدولا ظاهريا يحتوي على صف واحد أو أكثر. LATERAL VIEW تطبيق الصفوف على كل صف إخراج أصلي.
في Databricks SQL وبدءا من Databricks Runtime 12.2 يتم إهمال هذه العبارة. يجب استدعاء دالة منشئ قيم الجدول كدالة table_reference.
بناء الجملة
LATERAL VIEW [ OUTER ] generator_function ( expression [, ...] ) [ table_identifier ] AS column_identifier [, ...]
المعلمات
خارجي
إذا
OUTERتم تحديدها، فترجع قيمة خالية إذا كان صفيف/مخطط الإدخال فارغا أو خاليا.-
دالة مولد (EXPLODE و INLINE وما إلى ذلك).
-
الاسم المستعار ل
generator_function، وهو اختياري. -
يسرد أسماء الأعمدة المستعارة ل
generator_function، والتي يمكن استخدامها في صفوف الإخراج. يجب أن يتطابق عدد معرفات الأعمدة مع عدد الأعمدة التي تم إرجاعها بواسطة دالة المولد.
الأمثلة
> CREATE TABLE person (id INT, name STRING, age INT, class INT, address STRING);
> INSERT INTO person VALUES
(100, 'John', 30, 1, 'Street 1'),
(200, 'Mary', NULL, 1, 'Street 2'),
(300, 'Mike', 80, 3, 'Street 3'),
(400, 'Dan', 50, 4, 'Street 4');
> SELECT * FROM person
LATERAL VIEW EXPLODE(ARRAY(30, 60)) tableName AS c_age
LATERAL VIEW EXPLODE(ARRAY(40, 80)) AS d_age;
id name age class address c_age d_age
------ ------- ------- -------- ----------- -------- --------
100 John 30 1 Street 1 30 40
100 John 30 1 Street 1 30 80
100 John 30 1 Street 1 60 40
100 John 30 1 Street 1 60 80
200 Mary NULL 1 Street 2 30 40
200 Mary NULL 1 Street 2 30 80
200 Mary NULL 1 Street 2 60 40
200 Mary NULL 1 Street 2 60 80
300 Mike 80 3 Street 3 30 40
300 Mike 80 3 Street 3 30 80
300 Mike 80 3 Street 3 60 40
300 Mike 80 3 Street 3 60 80
400 Dan 50 4 Street 4 30 40
400 Dan 50 4 Street 4 30 80
400 Dan 50 4 Street 4 60 40
400 Dan 50 4 Street 4 60 80
> SELECT c_age, COUNT(1) FROM person
LATERAL VIEW EXPLODE(ARRAY(30, 60)) AS c_age
LATERAL VIEW EXPLODE(ARRAY(40, 80)) AS d_age
GROUP BY c_age;
c_age count(1)
-------- -----------
60 8
30 8
SELECT * FROM person
LATERAL VIEW EXPLODE(ARRAY()) tableName AS c_age;
id name age class address c_age
----- ------- ------ -------- ---------- --------
> SELECT * FROM person
LATERAL VIEW OUTER EXPLODE(ARRAY()) tableName AS c_age;
id name age class address c_age
------ ------- ------- -------- ----------- --------
100 John 30 1 Street 1 NULL
200 Mary NULL 1 Street 2 NULL
300 Mike 80 3 Street 3 NULL
400 Dan 50 4 Street 4 NULL