我正在使用
spark-jdbc
连接到 postgresql,其 url 如下:jdbc:postgresql://ip:port/testdb
。
然后,我收到错误
PSQLException: FATAL: database "TESTDB" does not exist
。 testdb
神奇地变成了大写 TESTDB
。 (我很确定网址中有小写的 testdb
)。
此外,我创建了一个大写数据库,例如
TESTDB_2
,并使url中的db_name与大写数据库匹配,例如jdbc:postgresql://ip:port/TESTDB_2
,效果很好。
有人遇到过类似的问题吗?是否有某个参数导致此情况?
由于是最简单的spark代码,所以一开始并没有考虑展示出来,scala代码如下:
spark
.read
.format("jdbc")
.option(JDBCOptions.JDBC_DRIVER_CLASS, driver())
.option(JDBCOptions.JDBC_TABLE_NAME, tableName)
.option(JdbcConfig.USER_KEY, userName)
.option(JdbcConfig.PASSWORD_KEY, password)
// problem
.option(JDBCOptions.JDBC_URL, url)
// other option
.option(JDBCOptions.JDBC_UPPER_BOUND, timeRange.endStr)
.option(JDBCOptions.JDBC_LOWER_BOUND, timeRange.startStr)
.option(JDBCOptions.JDBC_PARTITION_COLUMN, "c1")
.option(JDBCOptions.JDBC_NUM_PARTITIONS, numPartitions)
我通过docker安装了一个测试postgresql(相同版本),一切正常。这是由于 postgresql 中的某些设置造成的吗?
经过一段时间的尝试,将依赖项更新为
42.2.14
后,效果很好。
但是尝试中还是发现了一些奇怪的问题:
42.2.11
。使用原始 JDBC 代码,可以连接到该数据库。42.2.11
。