I\'m having an issue reading data via custom JDBC with Spark. How would I go about about overriding the sql dialect inferred via jdbc url?
The database in question i
You can do something like this.
val jdbcDF = spark.read
.format("jdbc")
.option("url", "jdbc:postgresql:dbserver")
.option("dbtable", "schema.tablename")
.option("user", "username")
.option("password", "password")
.load()
For more info check this
You can also specify in this way.
val connectionProperties = new Properties()
connectionProperties.put("user", "username")
connectionProperties.put("password", "password")
val jdbcDF2 = spark.read
.jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)
Maybe it's too late. But answer will be next:
Create your custom dialect, as I did for ClickHouse database(my jdbc connection url looks like this jdbc:clickhouse://localhost:8123)
private object ClickHouseDialect extends JdbcDialect {
//override here quoting logic as you wish
override def quoteIdentifier(colName: String): String = colName
override def canHandle(url: String): Boolean = url.startsWith("jdbc:clickhouse")
}
And register it somewhere in your code, like this:
JdbcDialects.registerDialect(ClickHouseDialect)