我有一个数据框,我试图在其中添加一列,该列基本上将采用同一数据框中现有列的对数。我正在尝试:
df = df.withColumn("logvalue", log(df["prediction_column"]) )
我已经检查了数据框的架构,并且预测列为浮点型。但是我不断收到这样的错误 TypeError:必须为浮点数
我在这里想念什么?任何建议都会有很大帮助
答案 0 :(得分:0)
您可以尝试以下方法,它对我有用
from pyspark.sql.functions import col
df = df.withColumn("logvalue", log10(col("prediction_column"))
答案 1 :(得分:-3)
只需尝试在不使用数据框的情况下使用列名,或者可以使用函数col
,但是在这里您必须先导入from pyspark.sql.functions import col
,然后再导入log(col("double_col"))
:
df = spark.createDataFrame([
(1.3 ,"s"),
(10.3 ,"t"),
(3.3 ,"x"),
(1.5 ,"u"),
(1.3 ,"v")
], ("double_col", "char"))
print df.schema
print df.withColumn("bla", log("double_col")).show()
输出:
StructType(List(StructField(double_col,DoubleType,true),StructField(char,StringType,true)))
+----------+----+-------------------+
|double_col|char| bla|
+----------+----+-------------------+
| 1.3| s|0.26236426446749106|
| 10.3| t| 2.33214389523559|
| 3.3| x| 1.1939224684724346|
| 1.5| u| 0.4054651081081644|
| 1.3| v|0.26236426446749106|
+----------+----+-------------------+