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

Scala如何将DataFrame逗号分隔数字字符串列转为Double数组

实现方案

以下两种主流Spark API的实现都可以1行完成转换,性能远高于自定义UDF:

  • PySpark (Spark 2.3及以上版本支持)
from pyspark.sql import functions as F
df = df.withColumn("MyCol", F.split(F.trim(F.col("MyCol")), ",\\s*").cast("array<double>"))
  • Scala Spark
import org.apache.spark.sql.functions._
val newDf = df.withColumn("MyCol", split(trim(col("MyCol")), ",\\s*").cast("array<double>"))

代码说明

  1. 先用trim清理字符串首尾的多余空白字符
  2. 按「逗号+任意数量空格」规则拆分字符串,得到array<string>类型的列
  3. 直接批量将字符串数组强转为array<double>,自动匹配你需要的Schema格式

如果你的数据中存在不符合Double格式的异常值,可将cast替换为Spark 3.0+支持的try_cast,异常值会自动转为null,不会打断任务执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:45:02