spark over jdbc不允许使用别名

idv4meu8  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(238)

使用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的名称?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题