【发布时间】:2021-08-14 04:43:02
【问题描述】:
我正在学习使用 Apache Spark (Scala),并且仍在弄清楚这里的工作方式
我正在努力实现一个简单的任务
- 查找列的最大值
- 从该最大值中减去该列的每个值并创建一个新列
我使用的代码是
import org.apache.spark.sql.functions._
val training = sqlContext.createDataFrame(Seq(
(10),
(13),
(14),
(21)
)).toDF("Values")
val training_max = training.withColumn("Val_Max",training.groupBy().agg(max("Values"))
val training_max_sub = training_max.withColumn("Subs",training_max.groupBy().agg(col("Val_Max")-col("Values) ))
但是我遇到了很多错误。我或多或少精通 R,如果我一直在做同样的任务,我的代码会是:
library(dplyr)
new_data <- training %>%
mutate(Subs= max(Values) - Values)
【问题讨论】:
标签: scala apache-spark apache-spark-sql