铸造双浮

时间:2019-05-10 12:58:44

标签: casting pyspark

我正在尝试将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类型。

有人知道会发生什么吗? 谢谢

1 个答案:

答案 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()))