【问题标题】:Column is of type uuid but expression is of type character varying in Spark Scala列是 uuid 类型,但表达式是 Spark Scala 中不同的字符类型
【发布时间】:2021-03-01 12:09:52
【问题描述】:

美好的一天。我正在部署一个流式作业以将数据从 Spark (Scala) 插入到 Postgres。

df.select("col1","col2").write.mode(SaveMode.Append).jdbc(url, "tableName", connectionProperties)

这里 col2 在数据帧 df 中有 uuid 值,但它是字符串数据类型。当它尝试插入将 col2 列定义为类型 uuid 的表中时,它会以 Column is of type uuid but expression is of type character varying 失败。有人可以帮我解决这个问题。 ?

谢谢。

【问题讨论】:

  • 您可以在创建连接属性时尝试使用此行添加额外的属性。 connectionProps.setProperty("stringtype", "unspecified")
  • 我已将其添加为答案。如果它对您有帮助并且对您有用,您可以接受它作为答案。

标签: java postgresql scala apache-spark


【解决方案1】:

当您的数据框中的列具有字符串数据类型但具有 UUID 类型的值时,您可以在连接属性中设置特定属性,这将允许您保存数据框。如果您不设置该属性,它将不允许您将数据保存在 sql/postgres 表中,如果该列的数据类型为 UUID。

您可以在连接属性中设置此属性

connectionProps.setProperty("stringtype", "unspecified")

设置上述属性将允许您将数据框中具有 UUID 值的字符串类型列保存到 postgres 数据库中 UUID 类型的列。

【讨论】:

    猜你喜欢
    • 2021-04-05
    • 2023-02-09
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2022-01-23
    • 2015-11-26
    • 2020-12-28
    • 2016-10-19
    相关资源
    最近更新 更多