Abrufen spezifischer Abfrageergebnisse aus einer externen Datenbank in Apache Spark 2.0.0
Beim Arbeiten mit externen Datenbanken in Apache Spark 2.0.0 mit PySpark möchten Benutzer möglicherweise Daten aus bestimmten Abfragen abrufen, anstatt die gesamte Tabelle abzurufen. Dies kann die Leistung verbessern und die Datenübertragung reduzieren.
Frage:
Im folgenden PySpark-Code wird der df DataFrame aus einer Datenbanktabelle mit dem Namen „schema.tablename“ geladen. . Wie können wir den Code ändern, um stattdessen Daten aus dem Ergebnissatz einer benutzerdefinierten Abfrage abzurufen?
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()
Antwort:
Um den Ergebnissatz einer benutzerdefinierten Abfrage abzurufen Geben Sie die Abfrage als „dbtable“-Argument in den Optionen des Spark DataFrameReader an. Die Abfrage muss in Klammern eingeschlossen und einem temporären Tabellennamen zugeordnet werden.
... .option("dbtable", "(SELECT foo, bar FROM schema.tablename) AS tmp") ...
Durch Übergabe der Unterabfrage als „dbtable“-Argument führt Spark die Abfrage aus und lädt die resultierenden Daten in den DataFrame. Dadurch können Benutzer bestimmte Daten aus externen Datenbanken abrufen, ohne den Aufwand für das Abrufen der gesamten Tabelle.
Das obige ist der detaillierte Inhalt vonWie kann ich mit PySparks JDBC bestimmte Abfrageergebnisse aus einer externen Datenbank abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!