【问题标题】:Pyspark dataframe: write jdbc to dynamic creation of table with given schemaPyspark 数据框:将 jdbc 写入具有给定模式的表的动态创建
【发布时间】:2020-06-22 06:52:37
【问题描述】:

有没有办法从 pyspark 数据帧动态创建具有给定架构的表,就像我们使用 pandas 数据帧的 to_sql 方法一样。

类似地,我们可以从 pyspark 数据框创建具有给定架构的表吗?

df.write.jdbc("jdbc:postgresql://localhost:5432/postgres", "sample_data1",mode="overwrite", properties=prop);

在上面的代码中,我们如何给出schema来生成我们想要的表?

【问题讨论】:

    标签: python pandas postgresql pyspark


    【解决方案1】:

    我认为您正在寻找这些选项-

    createTableOptions

    这是一个与 JDBC 编写器相关的选项。如果指定,此选项允许在创建表时设置特定于数据库的表和分区选项(例如,CREATE TABLE t (name string)ENGINE=InnoDB.)。此选项仅适用于写作。

    createTableColumnTypes

    创建表时要使用的数据库列数据类型,而不是默认值。数据类型信息应以与 CREATE TABLE 列语法相同的格式指定(例如:"name CHAR(64), comments VARCHAR(1024)")。指定的类型应该是有效的 spark sql 数据类型。此选项仅适用于写作。

    示例

    # Specifying create table column data types on write
    jdbcDF.write \
        .option("createTableColumnTypes", "name CHAR(64), comments VARCHAR(1024)") \
        .jdbc("jdbc:postgresql:dbserver", "schema.tablename",
              properties={"user": "username", "password": "password"})
    

    参考-spark-doc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-25
      • 2020-10-09
      • 1970-01-01
      • 2020-09-29
      • 2012-05-12
      • 1970-01-01
      • 2017-06-24
      相关资源
      最近更新 更多