Apache Spark 2.0.0 でのテーブル データの代わりにクエリ結果を取得する
Apache Spark 2.0.0 では、テーブル全体を Spark にロードするのではなく、外部データベースから特定のクエリ結果セットを取得します。これは、パフォーマンスを最適化し、Spark アプリケーションによって処理されるデータ量を削減するのに役立ちます。
PySpark を使用すると、読み取りメソッドの dbtable 引数としてサブクエリを指定できます。このサブクエリは外部データベースで実行され、結果のデータが Spark にロードされます。たとえば、次のコードは、schema.tablename テーブル全体をロードするのではなく、クエリの結果を取得する方法を示しています。
from pyspark.sql import SparkSession spark = SparkSession\ .builder\ .appName("spark play")\ .getOrCreate() df = spark.read\ .format("jdbc")\ .option("url", "jdbc:mysql://localhost:port")\ .option("dbtable", "(SELECT foo, bar FROM schema.tablename) AS tmp")\ .option("user", "username")\ .option("password", "password")\ .load()
サブクエリを dbtable 引数として指定することで、特定の列のみを選択できます。これにより、特に大きなテーブルを扱う場合、パフォーマンスが大幅に向上する可能性があります。
以上がApache Spark 2.0.0 でテーブル全体ではなく特定のクエリ結果を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。