0

Spark 2.4.0 と Exasol 6.2.0 を使用して、JDBC を介した単純なクエリから jdbc を介した DataFrame を作成したいと考えていSELECT * FROM table_nameます。

これは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 では許可されていません。エイリアス __SPARK_GEN_JDBC_SUBQUERY_NAME_0 の名前を Exasol が受け入れる識別子に変更する回避策はありますか?

4

0 に答える 0