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 サイトの他の関連記事を参照してください。