J'ai un dataframe avec une colonne sous forme de chaîne. Je voulais changer le type de colonne en type Double dans PySpark.
Voici le chemin que j'ai fait:
toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())
changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))
Je voulais juste savoir, est-ce la bonne façon de le faire, car en exécutant la régression logistique, je reçois une erreur, alors je me demande si c'est la raison du problème.
python
apache-spark
dataframe
pyspark
apache-spark-sql
Abhishek Choudhary
la source
la source
col
fonction fonctionne également.from pyspark.sql.functions import col
,changedTypedf = joindf.withColumn("label", col("show").cast(DoubleType()))
Conservez le nom de la colonne et évitez l'ajout de colonnes supplémentaires en utilisant le même nom que la colonne d'entrée:
la source
from pyspark.sql.types import IntegerType for ftr in ftr_list: df = df.withColumn(f, df[f].cast(IntegerType()))
Les réponses données sont suffisantes pour résoudre le problème, mais je souhaite partager une autre façon d'introduire la nouvelle version de Spark (je n'en suis pas sûr), donc la réponse donnée ne l'a pas attrapée.
Nous pouvons atteindre la colonne dans l'instruction Spark avec le
col("colum_name")
mot clé:la source
version pyspark:
la source
la solution était simple -
la source