如何使用PySpark连接DBeaver管理的本地PostgreSQL数据库并解决报错
PySpark连接PostgreSQL报错解决方案
你的报错核心原因是Spark运行时未正确加载PostgreSQL的JDBC驱动包,可按以下步骤修复:
- 确认驱动包路径有效
首先保证你本地的postgresql-42.2.23.jre7.jar实际存储路径和你配置的路径完全一致,路径不要包含中文、空格、特殊字符,也没有权限访问限制。 - 配置Spark驱动加载规则
有两种常用的配置方式,选其中一种即可:- 提交作业时指定参数
如果你通过spark-submit命令运行脚本,直接在命令中加--jars参数传入驱动路径:
spark-submit --jars C:/Users/Desktop/postgresql-42.2.23.jre7.jar 你的脚本文件名.py- 代码内初始化SparkSession时配置
不需要修改启动命令,直接调整你的代码逻辑即可,参考示例:
from pyspark.sql import SparkSession # 初始化时直接指定驱动包路径 spark = SparkSession.builder \ .appName("PostgreSQL连接测试") \ .config("spark.jars", "C:/Users/Desktop/postgresql-42.2.23.jre7.jar") \ .getOrCreate() url = 'jdbc:postgresql://localhost:5432/coucou' properties = { 'user': 'postgres', 'password': 'admin', 'driver': 'org.postgresql.Driver' } # 读取数据 df = spark.read.jdbc(url=url, table='tw_db', properties=properties) # 测试打印数据 df.show() - 提交作业时指定参数
- 额外检查项
- PostgreSQL服务正常启动,本地5432端口未被占用
- 数据库名
coucou、表名tw_db、用户名密码和你实际配置完全一致 - 驱动版本和你本地PostgreSQL服务版本兼容,仍报错可以换匹配的驱动版本尝试
内容的提问来源于stack exchange,提问作者Omayma HARBAOUI
相关产品推荐
相关产品推荐

