ホームページ >データベース >mysql チュートリアル >Apache Spark 2.0.0 で外部データベースから特定のクエリ結果をフェッチするにはどうすればよいですか?
Apache Spark では、外部データベースからのデータのフェッチは、多くの場合、DataFrameReader を使用してテーブル全体をロードすることによって行われます。 。ただし、特定のクエリの結果のみをフェッチすることが望ましい場合もあります。
Apache Spark 2.0.0 では、dbtable 引数としてサブクエリを指定できます。 JDBC ソースから読み取るとき。これにより、テーブル全体ではなく、特定のクエリの結果をフェッチできるようになります。
Pyspark で書かれた次のコード スニペットを考えてみましょう。
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()
この例では、テーブル全体をフェッチする代わりに、 schema.tablename テーブルの場合、コードはサブクエリ (SELECT foo, bar FROM schema.tablename) AS tmp を実行し、結果を一時ファイルに保存します。テーブル温度。次に、DataFrameReader は、一時テーブル tmp から DataFrame df にデータをロードします。
以上がApache Spark 2.0.0 で外部データベースから特定のクエリ結果をフェッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。