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

PySpark调用randomSplit切分DataFrame报Integer转Double错误怎么解决

错误原因

该报错与DataFrame的Schema无关,核心问题是你调用randomSplit()方法时传入的权重参数类型不符合要求:
PySpark的randomSplit()第一个参数要求传入元素为浮点型的列表,你传入的[70, 30]是整数列表,底层Scala运行时无法将整数自动转换为期望的Double类型,因此抛出类型转换异常。

修复方案

只需将权重列表的元素改为浮点型即可,有两种常用写法:

  1. 按比例写小数权重(推荐,可读性更强)
splits = list(frozen_df.randomSplit([0.7, 0.3], 13))
  1. 直接给整数加后缀转成浮点型
splits = list(frozen_df.randomSplit([70.0, 30.0], 13))

两种写法效果完全一致,随机种子参数13为整数符合方法要求,无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:30:04