【问题标题】:Custom Data Types for DataFrame columns when using Spark JDBC使用 Spark JDBC 时 DataFrame 列的自定义数据类型
【发布时间】:2018-05-18 03:00:30
【问题描述】:

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

【问题讨论】:

    标签: apache-spark jdbc


    【解决方案1】:

    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"})
    

    【讨论】:

      【解决方案2】:

      写入的灵活性很小,由

      实现

      如果你愿意

      在我从 spark 加载表时对我的表模式进行精细控制。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-14
        • 1970-01-01
        • 2019-02-07
        • 1970-01-01
        • 2020-06-30
        相关资源
        最近更新 更多