Tengo un marco de datos con una columna como Cadena. Quería cambiar el tipo de columna a tipo doble en PySpark.
A continuación se muestra la forma que hice:
toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())
changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))
Solo quería saber si esta es la manera correcta de hacerlo, ya que mientras ejecuto Regresión logística, recibo un error, así que me pregunto si esta es la razón del problema.
python
apache-spark
dataframe
pyspark
apache-spark-sql
Abhishek Choudhary
fuente
fuente
col
función también funciona.from pyspark.sql.functions import col
,changedTypedf = joindf.withColumn("label", col("show").cast(DoubleType()))
Conserve el nombre de la columna y evite la adición de columnas adicionales utilizando el mismo nombre que la columna de entrada:
fuente
from pyspark.sql.types import IntegerType for ftr in ftr_list: df = df.withColumn(f, df[f].cast(IntegerType()))
Las respuestas dadas son suficientes para lidiar con el problema, pero quiero compartir otra forma en la que se puede presentar la nueva versión de Spark (no estoy seguro), por lo que la respuesta dada no lo captó.
Podemos llegar a la columna en la declaración de chispa con la
col("colum_name")
palabra clave:fuente
versión de pyspark:
fuente
la solución fue simple -
fuente