Postgresql 创建并写入数据库JDBC PySpark

Postgresql 创建并写入数据库JDBC PySpark,postgresql,jdbc,pyspark,Postgresql,Jdbc,Pyspark,我有一个数据帧,我希望将其写入数据库表,但是使用以下命令: df.select("id", "scale", "mentions")\ .write.format("jdbc") \ .option("url", "jdbc:postgresql://ec2xxxxamazonaws.com:xxxx/xxxx") \ .opti

我有一个数据帧,我希望将其写入数据库表,但是使用以下命令:

df.select("id", "scale", "mentions")\
        .write.format("jdbc") \
        .option("url", "jdbc:postgresql://ec2xxxxamazonaws.com:xxxx/xxxx") \
        .option("dbtable", 'table) \
        .option("user", "xxxx") \
        .option("password", "xxxx") \
        .option("driver", "org.postgresql.Driver").mode('append').save()
我无法写入数据库,因为自从我在DB EC2实例上通过psql创建表以来,该表已经存在


我的问题是,有没有办法创建一个表,在spark python程序本身中插入查询?

据我所知,您可以简单地使用“append”的保存模式,以便将数据帧插入PostgreSQL上预先存在的表中

请尝试以下方法:

df.write.format('jdbc').options(
  url='jdbc:postgresql://ec2xxxxamazonaws.com:xxxx/xxxx',
  driver='org.postgresql.Driver',
  dbtable='table',
  user='xxxx',
  password='xxxx').mode('append').save()

但是,请记住,只有当表没有约束(即主键列或索引)时,这才有效。因此,当表和插入操作包含更高的复杂性时,通常有更好的实现选项。请尝试本文作为初学者:

据我所知,您可以简单地使用“append”的保存模式,以便将数据帧插入到PostgreSQL上预先存在的表中

请尝试以下方法:

df.write.format('jdbc').options(
  url='jdbc:postgresql://ec2xxxxamazonaws.com:xxxx/xxxx',
  driver='org.postgresql.Driver',
  dbtable='table',
  user='xxxx',
  password='xxxx').mode('append').save()

但是,请记住,只有当表没有约束(即主键列或索引)时,这才有效。因此,当表和插入操作包含更高的复杂性时,通常有更好的实现选项。首先尝试一下本文:

最初我做的是在我的数据库实例上创建一个表,然后使用spark将数据帧插入到该表中,也就是当我收到此消息时error@gammauniversity您能给出您的表在PostgreSQL中的模式吗?文档给出了上述代码,作为向现有PostgreSQL表插入数据帧的一种方式。表(event int not null,numsources int,nummentions int)这是模式,和我的一样dataframe@gammauniversity请发布您收到的错误消息,我们将从那里继续。最初我所做的是在我的数据库实例上创建一个表,然后使用spark将数据帧插入该表,那就是我收到这个的时候error@gammauniversity您能给出您的表在PostgreSQL中的模式吗?文档给出了上述代码,作为向现有PostgreSQL表插入数据帧的一种方式。表(event int not null,numsources int,nummentions int)这是模式,与我的dataframe@gammauniversity请发布您收到的错误消息,我们将从那里继续。