猿问

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

我有一个列为String的数据框。我想在PySpark中将列类型更改为Double type。


以下是我的方法:


toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())

changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))

只是想知道,这是正确的方法,就像通过Logistic回归运行时一样,我遇到了一些错误,所以我想知道,这是麻烦的原因。


翻翻过去那场雪
浏览 3508回答 3
3回答

慕田峪9158850

保留列名,并通过使用与输入列相同的名称来避免添加额外的列:changedTypedf = joindf.withColumn("show", joindf["show"].cast(DoubleType()))

qq_花开花谢_0

给定的答案足以解决问题,但是我想分享另一种可能引入新版本Spark的方式(我不确定),因此给定的答案未能解决。我们可以使用col("colum_name")关键字到达spark语句中的列:from pyspark.sql.functions import col , columnchangedTypedf = joindf.withColumn("show", col("show").cast("double"))
随时随地看视频慕课网APP

相关分类

Python
我要回答