Кастинг двойной, чтобы плавать - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь преобразовать столбец двойного типа в 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 голосов
/ 10 мая 2019

Вы можете попробовать эту функцию UDF:

from pyspark.sql.types import FloatType tofloatfunc = udf(lambda x: x,FloatType()) changedTypedf = df.withColumn("Column_name", df["Column_name"].cast(FloatType()))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...