Rumah >pangkalan data >tutorial mysql >Bagaimanakah SparkSQL Mengendalikan Subkueri dalam Versi Berbeza?

Bagaimanakah SparkSQL Mengendalikan Subkueri dalam Versi Berbeza?

Patricia Arquette
Patricia Arquetteasal
2025-01-03 14:24:39261semak imbas

How Does SparkSQL Handle Subqueries in Different Versions?

Sokongan SparkSQL untuk Subqueries

Dalam Spark, subqueries kini disokong dalam bentuk terhad. Spark 2.0 dan versi yang lebih baru menawarkan sokongan yang diperluaskan untuk subkueri, termasuk kedua-dua varian berkorelasi dan tidak berkorelasi. Walau bagaimanapun, dalam versi Spark sebelum 2.0, subkueri hanya dibenarkan dalam klausa FROM, serupa dengan versi Hive 0.12 dan lebih awal.

Subquery in WHERE Clause Error

The ralat yang dihadapi semasa menjalankan pertanyaan yang disediakan dalam shell Spark adalah disebabkan oleh fakta bahawa subqueries dalam klausa WHERE adalah tidak disokong dalam Spark sebelum versi 2.0. Ralat menyerlahkan bahawa penghurai menjangkakan kurungan tetapi menemui fungsi MAX sebaliknya, menunjukkan bahawa sintaks tidak betul.

Sokongan dalam Spark 2.0

Dalam Spark 2.0 dan lebih baharu , subqueries boleh digunakan dalam kedua-dua klausa FROM dan WHERE. Pertanyaan yang disediakan boleh ditulis semula seperti berikut:

sqlContext.sql("select sal from samplecsv where sal < (select max(sal) from samplecsv)").collect().foreach(println)

Had dalam Spark < 2.0

Dalam versi Spark sebelum 2.0, subqueries hanya disokong dalam klausa FROM. Subkueri berkorelasi, yang mana subkueri merujuk lajur daripada pertanyaan luar, tidak disokong. Untuk mencapai kefungsian yang serupa, cantuman cartesian mesti digunakan sebaliknya.

Atas ialah kandungan terperinci Bagaimanakah SparkSQL Mengendalikan Subkueri dalam Versi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn