Apache spark 使用Python从Dataricks写入Postgres

Apache spark 使用Python从Dataricks写入Postgres,apache-spark,pyspark,spark-dataframe,pyspark-sql,databricks,Apache Spark,Pyspark,Spark Dataframe,Pyspark Sql,Databricks,我在Datatricks中有一个名为customerDetails的数据帧 +--------------------+-----------+ | customerName| customerId| +--------------------+-----------+ |John Smith | 0001| |Jane Burns | 0002| |Frank Jones | 0003| +-

我在Datatricks中有一个名为customerDetails的数据帧

+--------------------+-----------+
|        customerName| customerId|
+--------------------+-----------+
|John Smith          |       0001|
|Jane Burns          |       0002|
|Frank Jones         |       0003|
+--------------------+-----------+
我希望能够将此从Databricks复制到Postgres中的表中

我发现它使用psycopg2将单个行复制到Postgres,我正在尝试将每一行从数据帧复制到Postgres表

import psycopg2

v1 = 'testing_name'
v2 = 'testing_id'


conn = psycopg2.connect(host="HOST_NAME",
                        port="PORT",
                        user="USER_NAME",
                        password="PASSWORD",
                        database="DATABASE_NAME")

cursor = conn.cursor()
cursor.execute("INSERT INTO customerTable (customerName, customerId) VALUES(%s, %s)", (v1, v2))
conn.commit()
cursor.close()
conn.close()

您可以逐行将所有数据插入表中

有关详细信息,请参阅文档,因为您可以将数据重新排序为元组列表,并将该列表作为最后一个参数传递

代码将与您给出的示例几乎相同

cursor = conn.cursor()
def append_to_table(row):
    cursor.execute("INSERT INTO customerTable (customerName, customerId) VALUES(%s, %s)", (row.customerName, row.customerId))

df.rdd.map(append_to_table)
conn.commit()
cursor.close()
conn.close()

感谢您的回复,我尝试了此操作并收到一个错误:“DataFrame”对象没有属性“map”oops,请尝试使用
rdd
ConversionTanks。它现在运行时没有错误,只是它似乎没有将任何内容复制到表中。嗯,请尝试打印出
行。customerName
以确保它确实在每一行中运行,它似乎没有打印任何内容。