pyspark 用fit训练数据集的时候出现"Params must be either a param map or a list/tuple of param maps,

在anaconda用决策树训练数据,

from pyspark.ml.classification import DecisionTreeClassifier
dt=DecisionTreeClassifier(labelCol="label",featuresCol="features")
dt_model=dt.fit(dfff)

出现错误
在这里插入图片描述

没办法,最后通过谷歌搜索,最后猜测可能是当我用cast转换数据类型时,导致某些数据不能转换从而变成null。

然后再转换类型之后,用dff.dropna()。用dfff.count()查看数据行数,果然比之前少了10条数据。
再执行上面的代码,没报错。

df=df.select([df[col].cast("double") for col in df.columns])
df=df.dropna()

执行下面代码。出现结果

print(dt_model)

DecisionTreeClassificationModel (uid=DecisionTreeClassifier_49c7b461375198d98f68) of depth 5 with 59 nodes

查看下面的错误消息,会发现有这么一句话:
Caused by: org.apache.spark.SparkException: Values to assemble cannot be null.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值