Apache spark Spark SQL-自定义数据类型UUID

Apache spark Spark SQL-自定义数据类型UUID,apache-spark,apache-spark-sql,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 metad

我正在尝试使用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))

由于无法在Spark SQL中转换为UUID,我做了相应的工作,我在Postgres JDBC客户端中添加了属性stringtype=unspecified,这解决了我通过Spark JDBC插入UUID的问题

您是否试图将数据帧写入以UUID作为列数据类型的数据库?有时,连接器会隐式地为您执行此操作。是@Philantrover我正在尝试使用postgres方言使用列UUID写入数据库,我得到了您应该查看的执行结果,并对响应延迟表示歉意。我已经把问题讲完了。我使用Postgres
stringtype
JDBC属性为Postgres获得了类似的异常