pyspark 如何将Databricks连接到本地postgresql数据库?

oknrviil  于 2023-03-01  发布在  Spark
关注(0)|答案(1)|浏览(210)

我正在尝试连接一个本地postgresql数据库到databricks来完成一些教程。我仍然得到下面的错误。查询在CLI和PGADMIN上都有效。
我上传了一个JDBC驱动程序到数据库集群,但是没有成功连接。任何帮助将不胜感激!

driver = "org.postgresql.Driver"

database_host = "localhost"
database_port = "5432" # update if you use a non-default port
database_name = "pysparkdb"
table = "authors"
user = "postgres"
password = "*****"

url = f"jdbc:postgresql://{database_host}:{database_port}/{database_name}"

remote_table = (spark.read
  .format("jdbc")
  .option("driver", driver)
  .option("url", url)
  .option("dbtable", table)
  .option("user", user)
  .option("password", password)
  .load()
)

org.postgresql.util.PSQLException:连接到localhost:5432被拒绝。请检查主机名和端口是否正确,以及邮局主管是否接受TCP/IP连接。

eagi6jfj

eagi6jfj1#

Local意味着“本地的东西”-在您的情况下,它是您的笔记本电脑或台式机。(AWS/Azure/GCP),所以他们不知道你在本地运行什么。当你指定localhost作为主机名时,它会被解析为运行Spark的机器(127.0.0.1),当然它没有运行任何PostgreSQL示例。
要连接到你的数据库,你需要提供通过VPN或类似方式访问它的可能性。例如,在Azure上,你可以遵循these instructions to setup connection to on-premise services。或者人们使用一些特定于云的数据库,如AWS上的RDS等。

相关问题