使用Python写入Dataricks的Postgres

时间:2018-04-24 15:36:46

标签: apache-spark pyspark spark-dataframe pyspark-sql databricks

我在Databricks中有一个名为customerDetails的数据框。

+--------------------+-----------+
|        customerName| customerId|
+--------------------+-----------+
|John Smith          |       0001|
|Jane Burns          |       0002|
|Frank Jones         |       0003|
+--------------------+-----------+

我希望能够将这个从Databricks复制到Postgres中的表格。

我发现这个post使用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()

1 个答案:

答案 0 :(得分:0)

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

请参阅cursor.executemany的文档,因为您可以将数据重新排序为元组列表并将列表作为最后一个参数传递。

代码与您提供的示例几乎完全相同

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()