gpt4 book ai didi

apache-spark - Spark SQL 中具有等效精度的十进制类型

转载 作者:行者123 更新时间:2023-12-01 12:11:49 24 4
gpt4 key购买 nike

什么是 Spark SQL 数据类型等同于 SQL 中的 DecimalType(2,9)

例如:print(column.dataType==X) => 应该给我 True。 SQL中Column的数据类型是DecimalType(2,9)

尝试过:X= DataTypes.createDecimalType(2,9),工作正常

我正在寻找一个通用的 DecimalType 类来过滤数据框中的所有 DecimalType 列,而不考虑精度和比例。

最佳答案

每个 DecimalType 类型都是 DecimalType 类的实例:

from pyspark.sql.types import DecimalType

df = (spark
.createDataFrame(["1.32"], "string")
.selectExpr("CAST(value AS DECIMAL(4, 2)) AS value"))

isinstance(df.schema["value"].dataType, DecimalType)
# True
import org.apache.spark.sql.types._

val df = Seq("1.32").toDF("value")
.selectExpr("CAST(value AS DECIMAL(4, 2)) AS value")

df.schema("value").dataType match {
case _: DecimalType => true
case _ => false
}
// Boolean = true

当然,您永远不会遇到 DECIMAL(2,9),因为小数位数不可能大于精度。

关于apache-spark - Spark SQL 中具有等效精度的十进制类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51252288/

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