ホームページ >データベース >mysql チュートリアル >SparkSQL は異なるバージョンのサブクエリをどのように処理しますか?

SparkSQL は異なるバージョンのサブクエリをどのように処理しますか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-03 14:24:39277ブラウズ

How Does SparkSQL Handle Subqueries in Different Versions?

SparkSQL のサブクエリのサポート

Spark では、サブクエリは現在、限定された形式でサポートされています。 Spark 2.0 以降のバージョンでは、相関バリアントと非相関バリアントの両方を含むサブクエリの拡張サポートが提供されます。ただし、2.0 より前の Spark バージョンでは、Hive バージョン 0.12 以前と同様に、サブクエリは FROM 句でのみ許可されます。

WHERE 句のサブクエリ エラー

Spark シェルで指定されたクエリを実行するときに発生したエラーは、WHERE 句のサブクエリが Spark シェルでサポートされていないことが原因です。バージョン 2.0 より前の Spark。このエラーは、パーサーが括弧を予期していたが代わりに MAX 関数に遭遇したことを強調しており、構文が間違っていることを示しています。

Spark 2.0 でのサポート

Spark 2.0 以降、サブクエリは FROM 句と WHERE 句の両方で使用できます。提供されたクエリは次のように書き換えることができます。

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

Spark の制限事項

Spark の制限事項 < 2.02.0 より前の Spark バージョンでは、サブクエリは FROM 句でのみサポートされます。サブクエリが外部クエリの列を参照する相関サブクエリはサポートされていません。同様の機能を実現するには、代わりにデカルト結合を使用する必要があります。

以上がSparkSQL は異なるバージョンのサブクエリをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。