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!