使用spark 2.4.0和exasol 6.2.0,我想通过一个简单的查询在jdbc上创建一个Dataframe SELECT * FROM table_name
通过jdbc。
这是scala中的代码:
df = sparkSession.read
.format("jdbc")
.option("driver", sourceJDBCConn("jdbcDriver"))
.option("url", sourceJDBCConn("jdbcUrl"))
.option("user", sourceJDBCConn("jdbcUsername"))
.option("password", sourceJDBCConn("jdbcPassword"))
.option("query", "SELECT * FROM table_name")
.load()
这适用于postgresql,但不适用于exasol。如果查看会话审核,我会发现以下sql:
SELECT * FROM (SELECT * FROM table_name) __SPARK_GEN_JDBC_SUBQUERY_NAME_0 WHERE 1=0
exasol的错误消息如下:
syntax error, unexpected $undefined, expecting UNION_ or EXCEPT_ or MINUS_ or INTERSECT_ [line 1, column 98]
虽然postgresql希望接受带有2个前导下划线的别名,但exasol中不允许使用这样的别名。是否有解决方法可以用exasol接受的标识符更改别名\uu spark\u gen\u jdbc\u subquery\u name\u 0的名称?
暂无答案!
目前还没有任何答案,快来回答吧!