python - Pyspark 数据框:将 jdbc 写入具有给定模式的表的动态创建
问题描述
有没有一种方法可以从 pyspark 数据框中动态创建具有给定模式的表,就像我们使用 pandas 数据框的to_sql方法一样。
同样,我们可以从 pyspark 数据框中创建具有给定模式的表吗?
df.write.jdbc("jdbc:postgresql://localhost:5432/postgres", "sample_data1",mode="overwrite", properties=prop);
在上面的代码中,我们如何给出模式来生成我们想要的表?
解决方案
我认为您正在寻找这些选项-
创建表选项
这是与 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"})
参考 -火花文档
推荐阅读
- angular - 'FieldValue | 类型不存在属性'toDate' 时间戳'但工作
- android - UnsupportedOperationException:单击肯定按钮时警告对话框崩溃
- html - CSS 按钮背景颜色未出现在 iPad 上
- maven - Maven 默默地找不到要运行的 JUnit 测试
- informatica - 将映射值传递给会话电子邮件任务
- testing - 如何修复 Oracle 加载测试中的“请求错误:身份验证失败 empJAgent.exe”错误?
- excel - 如何将值复制到最后一行
- excel - 有 Elseif 限制吗?
- symfony - 如何在 Symfony 日志中设置不同的错误级别
- powershell - 如何在 cmd 中设置一个变量,它是来自 powershell 命令结果的字符串?