SparkSQL-Unterabfrageunterstützung
SparkSQL unterstützt vollständig korrelierte und nicht korrelierte Unterabfragen in Versionen 2.0 und höher. In Versionen vor 2.0 war die Unterstützung von Spark für Unterabfragen jedoch begrenzt.
Unterabfragen in der FROM-Klausel unterstützt Spark auf die gleiche Weise wie Hive (Versionen <= 0.12).
SELECT col FROM (SELECT * FROM t1 WHERE bar) t2
Unterabfragen in der WHERE-Klausel wurden jedoch in Spark-Versionen vor 2.0 nicht unterstützt. Dies lag an Leistungsbedenken und der Tatsache, dass jede Unterabfrage mit JOIN ausgedrückt werden kann.
In Spark 2.0 und höher werden sowohl korrelierte als auch unkorrelierte Unterabfragen unterstützt. Beispiele hierfür sind:
SELECT * FROM l WHERE exists (SELECT * FROM r WHERE l.a = r.c) SELECT * FROM l WHERE l.a in (SELECT c FROM r)
Es ist jedoch wichtig zu beachten, dass die Verwendung von DataFrame DSL zum Ausdrücken von Unterabfragen in Versionen vor 2.0 derzeit nicht möglich ist.
Das obige ist der detaillierte Inhalt vonWie verarbeitet SparkSQL Unterabfragen in verschiedenen Versionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!