我有一個列為String的數(shù)據(jù)框。我想在PySpark中將列類型更改為Double type。以下是我的方法:toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))只是想知道,這是正確的方法,就像通過Logistic回歸運行時一樣,我遇到了一些錯誤,所以我想知道,這是麻煩的原因。
3 回答

慕田峪9158850
TA貢獻1794條經(jīng)驗 獲得超7個贊
保留列名,并通過使用與輸入列相同的名稱來避免添加額外的列:
changedTypedf = joindf.withColumn("show", joindf["show"].cast(DoubleType()))

qq_花開花謝_0
TA貢獻1835條經(jīng)驗 獲得超7個贊
給定的答案足以解決問題,但是我想分享另一種可能引入新版本Spark的方式(我不確定),因此給定的答案未能解決。
我們可以使用col("colum_name")關(guān)鍵字到達spark語句中的列:
from pyspark.sql.functions import col , column
changedTypedf = joindf.withColumn("show", col("show").cast("double"))
添加回答
舉報
0/150
提交
取消