ホームページ >データベース >mysql チュートリアル >Apache Spark 2.0.0 で外部データベースから特定のクエリ結果をフェッチするにはどうすればよいですか?

Apache Spark 2.0.0 で外部データベースから特定のクエリ結果をフェッチするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-02 02:46:08667ブラウズ

How to Fetch Specific Query Results from External Databases in Apache Spark 2.0.0?

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

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