我有以下DataFrame df
:
+------+----+---------+--------+--------+
|nodeId|ni |type |avg_ni |std_ni |
+------+----+---------+--------+--------+
| 1| 1| 0| 0.5| 0.7071|
| 0| 0| 0| 0.5| 0.7071|
| 2| 0| 2| 0.0| 0.0|
| 3| 0| 4| 0.6667| 1.1547|
| 4| 2| 4| 0.6667| 1.1547|
| 5| 0| 4| 0.6667| 1.1547|
+------+----+---------+--------+--------+
我想将公式(ni - avg_ni) / std_ni
应用于每一行。
我试过这种方式,但它不起作用:
df.map(x => (x("ni")-x("avg_ni")/x("std_ni"))).show()
答案 0 :(得分:1)
只需使用withColumn
或select
:
df.select(($"ni" - $ "avg_ni") / $"std_ni")
可选择转换
df.select(($"ni" - $ "avg_ni") / $"std_ni").as[Double]