Prise en charge des sous-requêtes SparkSQL
SparkSQL prend entièrement en charge les sous-requêtes corrélées et non corrélées dans les versions 2.0 et ultérieures. Cependant, dans les versions antérieures à 2.0, la prise en charge des sous-requêtes par Spark était limitée.
Pour les sous-requêtes de la clause FROM, Spark les prend en charge de la même manière que Hive (versions <= 0.12).
SELECT col FROM (SELECT * FROM t1 WHERE bar) t2
Cependant, les sous-requêtes de la clause WHERE n'étaient pas prises en charge dans les versions Spark antérieures à 2.0. Cela était dû à des problèmes de performances et au fait que chaque sous-requête peut être exprimée à l'aide de JOIN.
Dans Spark 2.0 et versions ultérieures, les sous-requêtes corrélées et non corrélées sont prises en charge. Les exemples incluent :
SELECT * FROM l WHERE exists (SELECT * FROM r WHERE l.a = r.c) SELECT * FROM l WHERE l.a in (SELECT c FROM r)
Cependant, il est important de noter que l'utilisation de DataFrame DSL pour exprimer des sous-requêtes dans les versions antérieures à 2.0 n'est actuellement pas possible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!