Как получить строку, соответствующую минимальному значению некоторого столбца в фрейме данных Scala Spark
У меня есть следующий код. df3 создается с использованием следующего кода. Я хочу получить минимальное значение distance_n, а также всю строку, содержащую это минимальное значение.
//it give just the min value , but i want entire row containing that min value
для получения всей строки я преобразовал этот df3 в таблицу для выполнения spark.sql
если мне так нравится spark.sql("выберите широту, долготу, скорость, мин (расстояние_n) из таблицы1"). show ()
и если spark.sql("выберите широту, долготу, скорость, мин (distance_nd) из таблицы 180"). show ()
// заменив distance_n на distance_nd, он выдаст ошибку
как решить эту проблему, чтобы получить всю строку, соответствующую минимальному значению
1 ответ
Прежде чем использовать пользовательский UDF, вы должны зарегистрировать его в sql Context для spark.
например:
spark.sqlContext.udf.register("strLen", (s: String) => s.length())
После того, как UDF зарегистрирован, вы можете получить к нему доступ в своем иске SQL как
spark.sql("select strLen(some_col) from some_table")
Ссылка: https://docs.databricks.com/spark/latest/spark-sql/udf-scala.html