首页 > 解决方案 > 数据帧火花/斯卡拉中的无穷大值

问题描述

我有一个具有无穷大值的数据框。如何将其替换为 0.0。

我试过了,但没有用。

val Nan= dataframe_final.withColumn("Vitesse",when(col("Vitesse").isin(Double.NaN,Double.PositiveInfinity,Double.NegativeInfinity),0.0))

数据框示例

--------------------
|    Vitesse       |
--------------------
| 8.171069002316942|
|  Infinity        |
| 4.290418664272539|
|16.19811830014666 |
|                  |

如何替换 "Infinity by 0.0" ?

谢谢你。

标签: scalaapache-spark

解决方案


scala> df.withColumn("Vitesse", when(col("Vitesse").equalTo(Double.PositiveInfinity),0.0).otherwise(col("Vitesse")))
res1: org.apache.spark.sql.DataFrame = [Vitesse: double]

scala> res1.show
+-----------------+
|          Vitesse|
+-----------------+
|8.171069002316942|
|              0.0|
|4.290418664272539|
+-----------------+

你可以像上面那样试试。


推荐阅读