PySpark:列的绝对值。类型错误:需要浮点

2024-09-27 07:21:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框df创建如下

schema = StructType([StructField('Id', StringType(), False),
                     StructField('Value', FloatType(), False)])  
df = spark.createDataFrame([('a',5.0),('b',1.0),('c',-0.3)],schema)

看起来像

+---+-----+
| Id|Value|
+---+-----+
|  a|  5.0|
|  b|  1.0|
|  c| -0.3|
+---+-----+

现在我要取“value”的绝对值,它应该返回

+---+-----+
| Id|Value|
+---+-----+
|  a|  5.0|
|  b|  1.0|
|  c|  0.3|
+---+-----+

我试过了

df = df.withColumn('Value',math.fabs(df.Value))

但它抱怨TypeError:需要一个float。但是Value列是用FloatType()指定的。

关于如何正确地做这件事有什么线索吗?谢谢!


Tags: 数据idfalsedfvalueschemamathspark

热门问题