如何使用 PySpark 将 JSON 列类型写入 Postgres?

Posted

技术标签:

【中文标题】如何使用 PySpark 将 JSON 列类型写入 Postgres?【英文标题】:How to write JSON column type to Postgres with PySpark? 【发布时间】:2017-09-07 04:37:21 【问题描述】:

我有一个 Postgresql 表,其中有一列数据类型为 JSONB

如何通过 JDBC 将DataFrame 插入 Postgresql 表?

如果我有一个 UDF 将 body 列转换为 JSONB Postgresql 数据类型,我应该使用什么对应的 pyspark.sql.types?

带有JSONB 列的Postgresql 表:

创建表虚拟( 标识大整数, 正文 JSONB );

谢谢!

【问题讨论】:

【参考方案1】:

事实证明,如果我将"stringtype":"unspecified" 设置为 JDBC 的属性,Postgres 会自动转换:

属性 = “用户”:“***”, “密码”: ”***”, “字符串类型”:“未指定” df.write.jdbc(url=url, table="dummy", properties=properties)

【讨论】:

我尝试了这个,但我仍然得到一个错误,尽管略有不同(抱怨类型是“字符”而不是“字符变化”)。这似乎是由 NULL 值的存在引起的。

以上是关于如何使用 PySpark 将 JSON 列类型写入 Postgres?的主要内容,如果未能解决你的问题,请参考以下文章

python中具有json行类型的PySpark Dataframe列

如何在pyspark中将JSON字符串转换为JSON对象

如何使用pyspark将json对象插入postgres表中的列

Pyspark:将数据帧作为 JSON 存储在 MySQL 表列中

如何将 PySpark Dataframe 列的类型指定为 JSON

使用 PySpark 将每一行的每一列作为单独的文件写入 S3