在 Scala 中获取两个相似列的最小值或最大值

Adi*_*lli 4 scala min spark-dataframe

我刚刚开始学习 Scala,我正在尝试找出一种方法minColumns获取DataFrame. 我有以下代码,它分别给出了 aminmaxa Column

inputDF.select(min($"dropoff_longitude")).show
inputDF.select(max($"pickup_longitude")).show
Run Code Online (Sandbox Code Playgroud)

我如何获得,min和. 我是这样做的Columnsdropoff_longitudepickup_longitude

scala.math.min(
   inputDF.select(min($"pickup_longitude")).head.getFloat(0),
   inputDF.select(min($"dropoff_longitude")).head.getFloat(0)
)
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

谢谢

Ser*_*nko 8

为此,您可以在选择表达式中使用leastgreatestSpark SQL 函数。在您的情况下,它将如下所示:

import org.apache.spark.sql.functions._

val minLongitude =
    df.select(least($"pickup_longitude", $"dropoff_longitude") as "least_longitude")
      .agg(min($"least_longitude"))
      .head.getFloat(0)
Run Code Online (Sandbox Code Playgroud)