【发布时间】:2018-05-18 03:00:30
【问题描述】:
我知道我可以使用自定义方言在我的数据库和 spark 之间进行正确映射,但是当我使用 spark 的 jdbc.write 选项时,如何创建具有特定字段数据类型和长度的自定义表架构?当我从 spark 加载表时,我希望对我的表模式进行精细控制。
【问题讨论】:
标签: apache-spark jdbc
我知道我可以使用自定义方言在我的数据库和 spark 之间进行正确映射,但是当我使用 spark 的 jdbc.write 选项时,如何创建具有特定字段数据类型和长度的自定义表架构?当我从 spark 加载表时,我希望对我的表模式进行精细控制。
【问题讨论】:
标签: apache-spark jdbc
https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
您可以使用 createTableColumnTypes 选项。
这是文档中的示例。
jdbcDF.write \
.option("createTableColumnTypes", "name CHAR(64), comments VARCHAR(1024)") \
.jdbc("jdbc:postgresql:dbserver", "schema.tablename",
properties={"user": "username", "password": "password"})
【讨论】:
写入的灵活性很小,由
实现如果你愿意
在我从 spark 加载表时对我的表模式进行精细控制。
您可能必须实现自己的JdbcDialect。它是内部开发人员 API,据我所知,它不可插入,因此您可能需要自定义 Spark 二进制文件(registerDialect 可能是可能的,但我还没有尝试过)。
【讨论】: