2

我有以下代码。df3 是使用以下代码创建的。我想获得 distance_n 的最小值以及包含该最小值的整行。

在此处输入图像描述

 //it give just the min value , but i want entire row containing that min value

在此处输入图像描述

为了获取整行,我将此 df3 转换为用于执行 spark.sql 的表

如果我喜欢这个 spark.sql("select latitude,longitude,speed,min(distance_n) from table1").show()

//它抛出错误 在此处输入图像描述

如果 spark.sql("select latitude,longitude,speed,min(distance_nd) from table180").show()

// 通过将 distance_n 替换为 distance_nd 它会抛出错误

在此处输入图像描述

如何解决此问题以获取对应于最小值的整行

4

1 回答 1

1

在使用自定义 UDF 之前,您必须在 spark 的 sql 上下文中注册它。

例如:

spark.sqlContext.udf.register("strLen", (s: String) => s.length())

注册 UDF 后,您可以在 spark sql 中访问它,例如

spark.sql("select strLen(some_col) from some_table")

参考:https ://docs.databricks.com/spark/latest/spark-sql/udf-scala.html

于 2018-10-08T06:02:18.470 回答