Eu tenho um dataframe com coluna como String. Eu queria alterar o tipo de coluna para tipo duplo no PySpark.
A seguir está o caminho, eu fiz:
toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())
changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))
Só queria saber se essa é a maneira certa de fazer isso, pois enquanto estou executando a Regressão Logística, estou recebendo algum erro, então me pergunto, é esse o motivo do problema.
python
apache-spark
dataframe
pyspark
apache-spark-sql
Abhishek Choudhary
fonte
fonte
col
função também funciona.from pyspark.sql.functions import col
,changedTypedf = joindf.withColumn("label", col("show").cast(DoubleType()))
Preserve o nome da coluna e evite a adição de coluna extra usando o mesmo nome da coluna de entrada:
fonte
from pyspark.sql.types import IntegerType for ftr in ftr_list: df = df.withColumn(f, df[f].cast(IntegerType()))
As respostas dadas são suficientes para lidar com o problema, mas eu quero compartilhar outra maneira que pode ser introduzida na nova versão do Spark (não tenho certeza sobre isso), portanto, a resposta dada não pegou.
Podemos alcançar a coluna na instrução spark com a
col("colum_name")
palavra-chave:fonte
versão pyspark:
fonte
a solução era simples -
fonte