首頁 >資料庫 >mysql教程 >如何使用 PySpark 的 JDBC 從外部資料庫取得特定查詢結果?

如何使用 PySpark 的 JDBC 從外部資料庫取得特定查詢結果?

Linda Hamilton
Linda Hamilton原創
2024-11-30 07:34:15513瀏覽

How Can I Fetch Specific Query Results from an External Database Using PySpark's JDBC?

在Apache Spark 2.0.0 中從外部資料庫取得特定查詢結果

使用PySpark 在Apache Spark 2.0.0 中處理外部資料庫時,用戶可能希望從特定查詢中獲取數據,而不是獲取整個表。這可以增強效能並減少資料傳輸。

問題:

在以下 PySpark 程式碼中,從名為「schema.tablename」的資料庫表載入 df DataFrame 。我們如何修改程式碼以從自訂查詢的結果集中取得資料?

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", "schema.tablename")\
    .option("user", "username")\
    .option("password", "password")\
    .load()

答案:

取得自訂查詢的結果集查詢,將查詢作為 Spark DataFrameReader 選項中的「dbtable」參數提供。查詢必須用括號括起來,並為臨時表名稱起別名。

...
.option("dbtable", "(SELECT foo, bar FROM schema.tablename) AS tmp")
...

透過將子查詢作為「dbtable」參數傳遞,Spark 將執行查詢並將結果資料載入到 DataFrame 中。這允許使用者從外部資料庫檢索特定數據,而無需獲取整個表的開銷。

以上是如何使用 PySpark 的 JDBC 從外部資料庫取得特定查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn