Ich habe einen Datenrahmen mit einer Spalte als String. Ich wollte den Spaltentyp in PySpark in Double-Typ ändern.
Folgendes habe ich getan:
toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType())
changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show']))
Ich wollte nur wissen, ob dies der richtige Weg ist, da beim Durchlaufen der logistischen Regression ein Fehler auftritt. Ich frage mich, ob dies der Grund für die Probleme ist.
python
apache-spark
dataframe
pyspark
apache-spark-sql
Abhishek Choudhary
quelle
quelle
col
Funktion funktioniert auch.from pyspark.sql.functions import col
,changedTypedf = joindf.withColumn("label", col("show").cast(DoubleType()))
Behalten Sie den Namen der Spalte bei und vermeiden Sie das Hinzufügen zusätzlicher Spalten, indem Sie denselben Namen wie die Eingabespalte verwenden:
quelle
from pyspark.sql.types import IntegerType for ftr in ftr_list: df = df.withColumn(f, df[f].cast(IntegerType()))
Die gegebenen Antworten reichen aus, um das Problem zu lösen, aber ich möchte einen anderen Weg vorstellen, der möglicherweise in die neue Version von Spark eingeführt wird (da bin ich mir nicht sicher), sodass die gegebenen Antworten es nicht verstanden haben.
Wir können die Spalte in der Spark-Anweisung mit dem
col("colum_name")
Schlüsselwort erreichen:quelle
pyspark version:
quelle
Die Lösung war einfach -
quelle