Das Ziel dieser Frage ist es zu dokumentieren:
Schritte zum Lesen und Schreiben von Daten über JDBC-Verbindungen in PySpark
mögliche Probleme mit JDBC-Quellen und bekannten Lösungen
Mit kleinen Änderungen sollten diese Methoden mit anderen unterstützten Sprachen wie Scala und R funktionieren.
quelle
Laden Sie den Treiber mysql-connector-java herunter und bewahren Sie ihn im Ordner spark jar auf. Beachten Sie den folgenden Python-Code, indem Sie Daten in "acotr1" schreiben. Wir müssen die Tabellenstruktur acotr1 in der mysql-Datenbank erstellen
spark = SparkSession.builder.appName("prasadad").master('local').config('spark.driver.extraClassPath','D:\spark-2.1.0-bin-hadoop2.7\jars\mysql-connector-java-5.1.41-bin.jar').getOrCreate() sc = spark.sparkContext from pyspark.sql import SQLContext sqlContext = SQLContext(sc) df = sqlContext.read.format("jdbc").options(url="jdbc:mysql://localhost:3306/sakila",driver="com.mysql.jdbc.Driver",dbtable="actor",user="root",password="****").load() mysql_url="jdbc:mysql://localhost:3306/sakila?user=root&password=****" df.write.jdbc(mysql_url,table="actor1",mode="append")
quelle
Unter diesem Link können Sie die jdbc für Postgres herunterladen und die Schritte zum Herunterladen der JAR-Datei ausführen
https://jaceklaskowski.gitbooks.io/mastering-apache-spark/exercises/spark-exercise-dataframe-jdbc-postgresql.html JAR-Datei wird in diesem Pfad heruntergeladen. "/home/anand/.ivy2/jars/org.postgresql_postgresql-42.1.1.jar"
Wenn Ihre Funkenversion 2 ist
from pyspark.sql import SparkSession spark = SparkSession.builder .appName("sparkanalysis") .config("spark.driver.extraClassPath", "/home/anand/.ivy2/jars/org.postgresql_postgresql42.1.1.jar") .getOrCreate() //for localhost database// pgDF = spark.read \ .format("jdbc") \ .option("url", "jdbc:postgresql:postgres") \ .option("dbtable", "public.user_emp_tab") \ .option("user", "postgres") \ .option("password", "Jonsnow@100") \ .load() print(pgDF) pgDF.filter(pgDF["user_id"]>5).show()
Speichern Sie die Datei als Python und führen Sie "python jeweilige Dateiname.py" aus.
quelle