为了账号安全,请及时绑定邮箱和手机立即绑定

如何在pyspark中将Dataframe列从String类型更改为Double类型

如何在pyspark中将Dataframe列从String类型更改为Double类型

翻翻过去那场雪 2019-10-10 16:40:07
我有一个列为String的数据框。我想在PySpark中将列类型更改为Double type。以下是我的方法:toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))只是想知道,这是正确的方法,就像通过Logistic回归运行时一样,我遇到了一些错误,所以我想知道,这是麻烦的原因。
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

保留列名,并通过使用与输入列相同的名称来避免添加额外的列:


changedTypedf = joindf.withColumn("show", joindf["show"].cast(DoubleType()))


查看完整回答
反对 回复 2019-10-10
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

给定的答案足以解决问题,但是我想分享另一种可能引入新版本Spark的方式(我不确定),因此给定的答案未能解决。


我们可以使用col("colum_name")关键字到达spark语句中的列:


from pyspark.sql.functions import col , column

changedTypedf = joindf.withColumn("show", col("show").cast("double"))


查看完整回答
反对 回复 2019-10-10
  • 3 回答
  • 0 关注
  • 3507 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信