我正在尝试使用docker容器中的pyspark连接到我的计算机localhost:5432上的postgres数据库。为此我使用了VS代码。VS代码自动构建和运行容器。以下是我的代码:
password = ...
user = ...
url = 'jdbc:postgresql://127.0.0.1:5432/postgres'
spark = SparkSession.builder.config("spark.jars","/opt/spark/jars/postgresql-42.2.5.jar") \
.appName("PySpark_Postgres_test").getOrCreate()
df = connector.read.format("jbdc") \
.option("url", url) \
.option("dbtable", 'chicago_crime') \
.option("user", user) \
.option("password", password) \
.option("driver", "org.postgresql.Driver") \
.load()
我总是得到相同的错误:
"调用o358.load时出错。\n:java.lang.ClassNotFoundException: \n找不到数据源:日巴发展中心.
您访问的网址不正确!
url = 'jdbc:postgresql://127.0.0.1:5432/postgres'
该数据库位于端口5432上,名称为postgres。该数据库位于我的本地主机上,但由于我使用的是Docker容器,因此我认为正确的方法是输入便携式计算机的IP地址localhost127.0.0.1。如果键入localhost,它将引用Docker容器的本地主机。或者,我应该使用**IPv4地址 * * (无线局域网或wsl)。
有人知道出什么事了吗?
ps,我的dockerfile中的一个命令如下:
RUN wget https://jdbc.postgresql.org/download/postgresql-42.2.5.jar -P /opt/spark/jars
1条答案
按热度按时间uwopmtnx1#