Apache spark 使用Spark JDBC时DataFrame列的自定义数据类型

Apache spark 使用Spark JDBC时DataFrame列的自定义数据类型,apache-spark,jdbc,Apache Spark,Jdbc,我知道我可以使用自定义方言在db和spark之间建立正确的映射,但是当我使用spark的jdbc.write选项时,如何创建具有特定字段数据类型和长度的自定义表模式?当我从spark加载一个表时,我想对我的表模式进行粒度控制 写操作的灵活性最低,由 但是如果你想 从spark加载表时,对表架构进行粒度控制 您可能必须实现自己的。这是内部开发人员API,据我所知,它是不可插入的,因此您可能需要定制的Spark二进制文件(可能需要,但我没有尝试过)。 您可以使用createTableColu

我知道我可以使用自定义方言在db和spark之间建立正确的映射,但是当我使用spark的
jdbc.write
选项时,如何创建具有特定字段数据类型和长度的自定义表模式?当我从spark加载一个表时,我想对我的表模式进行粒度控制

写操作的灵活性最低,由

但是如果你想

从spark加载表时,对表架构进行粒度控制

您可能必须实现自己的。这是内部开发人员API,据我所知,它是不可插入的,因此您可能需要定制的Spark二进制文件(可能需要,但我没有尝试过)。

您可以使用createTableColumnTypes选项

以下是文档中的示例

指定写入时创建表列数据类型
jdbcDF.write \
    .option("createTableColumnTypes", "name CHAR(64), comments VARCHAR(1024)") \
    .jdbc("jdbc:postgresql:dbserver", "schema.tablename",
          properties={"user": "username", "password": "password"})