Spark SQL - 转换为数据集列的 UUID 引发解析异常
Posted
技术标签:
【中文标题】Spark SQL - 转换为数据集列的 UUID 引发解析异常【英文标题】:Spark SQL - Cast to UUID of the Dataset Column throws Parse Exception 【发布时间】:2018-03-29 20:27:54 【问题描述】:Dataset<Row> finalResult = df.selectExpr("cast(col1 as uuid())", "col2");
当我们尝试将数据集中的列转换为 UUID 并保留在 Postgres 中时,我看到以下异常。请建议将数据集中的列转换为 UUID 的替代解决方案。
java.lang.RuntimeException: org.apache.spark.sql.catalyst.parser.ParseException:
DataType uuid() is not supported.(line 1, pos 21)
== SQL ==
cast(col1 as UUID)
---------------------^^^
【问题讨论】:
【参考方案1】:Spark 没有 uuid 类型,因此强制转换为一个类型是行不通的。
您可以尝试使用database.column.type
元数据属性,如Custom Data Types for DataFrame columns when using Spark JDBC 和SPARK-10849 中所述。
【讨论】:
我尝试了 MetadataBuilder,但它不起作用。我找到了工作,请在这里找到我的答案。***.com/questions/49625460以上是关于Spark SQL - 转换为数据集列的 UUID 引发解析异常的主要内容,如果未能解决你的问题,请参考以下文章