【发布时间】:2025-11-26 00:40:01
【问题描述】:
我有一个数据框,其中一列具有查询字符串,表示要使用其他列完成的计算。
val aSeq = Seq(
(1,10,10,10,"avg(c2)"),
(2,20,20,20,"sum(c1)"),
(3,30,30,30,"count(id)"),
(4,40,40,40,"(avg(c1)+avg(c2))"),
(5,50,50,50,"(avg(c3)+avg(c1))")
)
val df = aSeq.toDF("id","c1","c2","c3","calc")
df.show()
+---+---+---+---+--------------------+
| id| c1| c2| c3| calc|
+---+---+---+---+--------------------+
| 1| 10| 10| 10| avg(c2)|
| 2| 20| 20| 20| sum(c1)|
| 3| 30| 30| 30| count(id)|
| 4| 40| 40| 40| (avg(c1)+avg(c2))|
| 5| 50| 50| 50| (avg(c3)+avg(c1))|
+---+---+---+---+--------------------+
是否可以计算包含这些计算值的另一列?如果需要,我很乐意提供更多信息。感谢您的任何输入,指针...
【问题讨论】:
-
我不认为
sum(avg(c1)+avg(c2))是一个有效的例子,因为嵌套的聚合函数。我相信你只想写(avg(c1)+avg(c2))
标签: scala apache-spark pyspark