小编Rob*_*ang的帖子

Scala通过表达式向数据框添加新列

我将使用表达式向数据框添加新列.例如,我有一个数据帧

+-----+----------+----------+-----+
| C1  | C2       |   C3     |C4   |
+-----+----------+----------+-----+
|steak|1         |1         |  150|
|steak|2         |2         |  180|
| fish|3         |3         |  100|
+-----+----------+----------+-----+
Run Code Online (Sandbox Code Playgroud)

我想创建一个带有表达式"C2/C3 + C4"的新列C5,假设需要添加几个新列,并且表达式可能不同并且来自数据库.

有没有办法做到这一点?

我知道如果我有一个像"2 + 3*4"的表达式,我可以使用scala.tools.reflect.ToolBox来评估它.

通常我使用df.withColumn来添加新列.

似乎我需要创建一个UDF,但是如何将columns值作为参数传递给UDF?特别是可能有多个表达需要不同的列计算.

scala dataframe apache-spark

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

apache-spark ×1

dataframe ×1

scala ×1