apache-spark - Spark SQL 中具有等效精度的十进制类型
问题描述
什么是 SQL 中的 Spark 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)
,因为规模不可能大于精度。
推荐阅读
- css - 如何在wordpress中更改网站特定页面上的徽标?
- python - 'type' 类型的对象没有 len()
- sql-server - 如何在使用 Sql Server HA 时将辅助数据库更改为主数据库并且主计算机已断开连接
- kubernetes - 如何在 Kubernetes 中管理持久连接
- tfs - 在 TFS 发布管理器中动态创建阶段
- postgresql - 以 JSON 格式将数据从 Kafka 主题推送到 PostgreSQL
- excel - 通过 VBA 保存为 PDF 会损坏文件
- php - 为什么我在 PHP 和 JSON 中有不同的转储?
- apache-kafka - 如何进入集成在 Kafka 中的 Zookeeper?( 2.2.0 )
- angular - ionic3 - 如何在 fab 按钮打开时添加背景