我正在尝试连接一个本地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连接。
1条答案
按热度按时间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等。