我正在尝试将double类型的列强制转换为float,因此我将能够使用round()
函数。我尝试了不同的方法来完成此操作,但对我而言不起作用。
df=EAS3
gap_AZ= (col('KPI_2') - col('average'))/col('average')*100).cast(FloatType())
EAS3 = (EAS3.withColumn('GAP', lit(gap_AZ)))
我希望将gap_AZ
作为浮点型列。但是,当我使用FloatType时,会强制将其设置为STRING类型。
有人知道会发生什么吗? 谢谢
答案 0 :(得分:0)
您可以尝试使用此UDF功能:
from pyspark.sql.types import FloatType
tofloatfunc = udf(lambda x: x,FloatType())
changedTypedf = df.withColumn("Column_name", df["Column_name"].cast(FloatType()))