Spark SQL - 自定义数据类型 UUID

pra*_*ack 1 apache-spark apache-spark-sql

我正在尝试使用 Spark SQL 中的自定义数据类型将数据集中的列从 varchar 转换为 UUID。但我看到转换没有发生。如果我在这里遗漏了什么,请告诉我。

val secdf = sc.parallelize( Array(("85d8b889-c793-4f23-93e9-ea18db640039","Revenue"), ("85d8b889-c793-4f23-93e9-ea18db640038","Income:123213"))).toDF("id", "report")
val metadataBuilder = new MetadataBuilder()
metadataBuilder.putString("database.column.type", "uuid")
metadataBuilder.putLong("jdbc.type", java.sql.Types.OTHER)
val metadata = metadataBuilder.build()
val secReportDF = secdf.withColumn("id", col("id").as("id", metadata))
Run Code Online (Sandbox Code Playgroud)

pra*_*ack 5

我做了解决办法,因为我们无法在 Spark SQL 中转换为 UUID,我已在 Postgres JDBC 客户端中将属性添加为 stringtype=unspecified,这解决了我在通过 Spark JDBC 插入 UUID 中的问题

  • [这里是解决方法](/sf/answers/2868553551/) 使用 Postgres `stringtype` JDBC 属性 (2认同)