0

我正在使用 pyspark 与 Denodo 数据库建立 JDBC 连接。我要连接的表包含 2 列的“TIMESTAMP_WITH_TIMEZONE”数据类型。由于 spark 仅提供与少数 denodo 不属于其中一部分的 dbs 的内置 jdbc 连接,因此它无法识别“TIMESTAMP_WITH_TIMEZONE”数据类型,因此无法映射到其任何 spark sql 数据类型。为了克服这个问题,我提供了我的自定义架构(此处为 c_schema),但这并不正常,我遇到了同样的错误。下面是代码片段。

c_schema="game start date TIMESTAMP,game end date TIMESTAMP" 
    
df = spark.read.jdbc("jdbc_url", "schema.table_name",properties={"user": "user_name", "password": "password","customSchema":c_schema,"driver": "com.denodo.vdp.jdbc.Driver"})

请让我知道我该如何解决这个问题。

4

1 回答 1

0

对于在使用 spark 连接到 denodo 时遇到此问题的其他任何人,请使用 CAST 函数将数据类型“TIMESTAMP_WITH_TIMEZONE”转换为任何其他数据类型,如字符串、日期或时间戳等。我也在 denodo 社区页面上发布了这个问题,我已经附上了它官方回应。

CAST("PLANNED START DATE" as DATE) as "PLANNED_START_DATE"

denodo团队回答

于 2022-02-11T04:18:22.880 回答