You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks中去除字段的.000000,保留小数点前数值?

在Databricks中去除字段的“.000000”后缀

针对你要处理的类似“2386.000000”这类字段,在Databricks里有几种简单的实现方式,分SQL和PySpark两种场景说明:

方法一:正则表达式替换(适用于字符串类型字段)

如果字段是字符串格式,直接用regexp_replace匹配结尾的“.000000”并替换为空:

-- SQL写法
SELECT regexp_replace(your_column_name, '\\.000000$', '') AS cleaned_column
FROM your_table;
# PySpark写法
from pyspark.sql.functions import regexp_replace, col

df = df.withColumn(
    "cleaned_column",
    regexp_replace(col("your_column_name"), r"\.000000$", "")
)

这里的$确保只匹配字段末尾的目标后缀,避免误替换字段中间出现的类似字符。

方法二:转换为整数类型(适用于数值类型字段)

如果字段是数值类型(比如double、float),直接转成整数就能自动去掉末尾的“.000000”:

-- SQL写法
SELECT CAST(your_column_name AS INT) AS cleaned_column
FROM your_table;
-- 用FLOOR函数也能达到同样效果
SELECT FLOOR(your_column_name) AS cleaned_column
FROM your_table;
# PySpark写法
from pyspark.sql.functions import col

df = df.withColumn(
    "cleaned_column",
    col("your_column_name").cast("int")
)

这种方法效率更高,但只适合确定字段值小数部分全为0的场景。

方法三:截取小数点前内容(通用场景)

不管字段是字符串还是数值类型,都可以先转成字符串,再截取小数点前的部分:

-- SQL写法
SELECT split(your_column_name, '\\.')[0] AS cleaned_column
FROM your_table;
# PySpark写法
from pyspark.sql.functions import split, col

df = df.withColumn(
    "cleaned_column",
    split(col("your_column_name"), r"\.")[0]
)

这种方法通用性强,哪怕后续遇到其他小数位数的情况,也能保留整数部分。

内容的提问来源于stack exchange,提问作者Mariana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 03:54:29