从pyspark连接到postgresql时出错

从pyspark连接到postgresql时出错,postgresql,pyspark,Postgresql,Pyspark,我正在从pyspark shell连接到docker上的postgres 代码如下: spark = SparkSession \ .builder \ .appName("Python Spark SQL basic example") \ .config("spark.jars", "C:\sudip\projects\pyspark\postgresql-42.2.18.jar") \ .getOr

我正在从pyspark shell连接到docker上的postgres

代码如下:

spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.jars", "C:\sudip\projects\pyspark\postgresql-42.2.18.jar") \
    .getOrCreate()

df = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:postgresql://localhost:5432/practice_data") \
    .option("dbtable", "employee_data") \
    .option("user", "postgres") \
    .option("password", "docker") \
    .option("driver", "org.postgresql.Driver") \
    .load()
但是,我看到虽然spark对象已成功创建,但我看到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\sudip\spark\spark-3.0.1-bin-hadoop2.7\python\pyspark\sql\readwriter.py", line 184, in load
    return self._df(self._jreader.load())
  File "C:\sudip\spark\spark-3.0.1-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py", line 1304, in __call__
  File "C:\sudip\spark\spark-3.0.1-bin-hadoop2.7\python\pyspark\sql\utils.py", line 128, in deco
    return f(*a, **kw)
  File "C:\sudip\spark\spark-3.0.1-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\py4j\protocol.py", line 326, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o49.load.
**:java.lang.ClassNotFoundException: org.postgresql.Driver**
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
加载文件“C:\sudip\spark\spark-3.0.1-bin-hadoop2.7\python\pyspark\sql\readwriter.py”,第184行
返回self.\u df(self.\u jreader.load())
文件“C:\sudip\spark\spark-3.0.1-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\py4j\java\u gateway.py”,第1304行,在调用中__
文件“C:\sudip\spark\spark-3.0.1-bin-hadoop2.7\python\pyspark\sql\utils.py”,第128行,deco格式
返回f(*a,**kw)
文件“C:\sudip\spark\spark-3.0.1-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\py4j\protocol.py”,第326行,在get\u返回值中
py4j.protocol.Py4JJavaError:调用o49.load时出错。
**:java.lang.ClassNotFoundException:org.postgresql.Driver**
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
我已经试了很多遍,到处都找遍了 java.lang.ClassNotFoundException:org.postgresql.Driver,无法修复上述问题。谁能帮忙吗

感谢和问候,

Sudip

看起来一切正常,但我还是发现了这个问题……非常困惑,这是不是真的……因为postgresql在docker的linux上运行,也许这就是问题所在?但是这个路径是好的,因为我的应用程序使用相同的路径来读/写数据库……我在windows 10中