Pyspark 数据帧错误:列“DateCreated”的类型为带时区的时间戳,但表达式的类型为字符变化

问题描述 投票:0回答:1

通过 Pyspark 数据帧,从 SQL Server 选择记录(通过 Spark.read.format)并使用 dataframe.write 选项插入到 Postgres 表中。在插入过程中,它抛出以下错误。

批次条目 0 INSERT INTO 测试 ("Num","DateCreated","DateLastModified","RecordType","RecordSubType","coName","RunDateTime","RunIdent","Payer","ProcessYear","etlInsertId ","etlUpdateId") 值 (1,'2019-06-18 19:45:36.8716624 -06:00','2019-06-18 19:45:36.8716624 -06:00','H',' ' ,'DataBricks','202106181943','CONSUMER','111023',2022,0,0) 已中止:错误:列“DateCreated”的类型为带时区的时间戳,但表达式的类型为字符变化

“DateCreated”是 Postgres 表中的带有时区的 TIMESTAMP(数据类型)。

让我知道我在这里犯了什么错误?

提前致谢。

我希望将记录插入到 Postgres 表中。

sql postgresql pyspark
1个回答
0
投票

您需要将一个字符串转换为 tomestamp

CREATE tABLE mytab ("DateCreated" timestamp
  with time zone)
CREATE TABLE
INSERT INTO mytab VALUES('2019-06-18 19:45:36.8716624 -06:00'::timestamp with time zone)
INSERT 0 1
SELECT * FROM mytab
创建日期
2019-06-19 01:45:36.871662+00
SELECT 1

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.