gpt4 book ai didi

scala - 将字符串 "decimal"转换为 DecimalType

转载 作者:行者123 更新时间:2023-12-05 06:59:54 25 4
gpt4 key购买 nike

由于过程过于复杂,我需要将表示数据类型的字符串转换为实际的 org.apache.spark.sql.types 数据类型。我有一个几乎可以工作的简单函数。

def getType (s: String): DataType = {
s match {
case "string" => StringType
...
case "decimal" => DecimalType
//case "decimal" => org.apache.spark.sql.types.DecimalType

}
}

小数线的两个版本都导致它失败:

found  : org.apache.spark.sql.types.DecimalType.type
required: org.apache.spark.sql.types.DataType

我该如何处理?

最佳答案

您可以通过多种方式创建 DecimalType。

您可以使用new(Java 版本)来创建 DecimalType。

默认精度和小数位数是 (10, 0) new DecimalType(),但您可以提供精度小数位数precision可以达到38,scale也可以达到38(小于或等于precision)。

例如

    def getType (s: String): DataType = {
s match {
case "string" => StringType
case "decimal" => new DecimalType(precision = 18, scale = 12)
case "decimalV2" => DataTypes.createDecimalType() // This works too, default precision and scale
case "decimalV3" => DataTypes.createDecimalType(precision = 12, scale = 8) // if you want to provide precision and scale
//case "decimal" => org.apache.spark.sql.types.DecimalType
}
}

关于scala - 将字符串 "decimal"转换为 DecimalType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64271154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com