Сортировать Spark Dataframe с двумя столбцами в различном порядке - PullRequest
0 голосов
/ 27 ноября 2018

Допустим, у меня есть такая таблица:

A,B
2,6
1,2
1,3
1,5
2,3

Я хочу отсортировать ее по возрастанию для столбца A, но в рамках этого я хочу отсортировать ее по убыванию столбца * 1005.* вот так:

A,B
1,5
1,3
1,2
2,6
2,3

Я пытался использовать orderBy("A", desc("B")), но выдает ошибку.

Как мне написать запрос с использованием фрейма данных в Spark 2.0?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

desc - это правильный метод для использования, однако, это не тот метод в классе Columnn.Поэтому его следует применять следующим образом:

df.orderBy($"A", $"B".desc)

$"B".desc возвращает столбец, поэтому значение "A" также должно быть изменено на $"A" (или col("A"), если имплические эффекты не импортированы).

0 голосов
/ 27 ноября 2018

Использовать метод столбца desc , как показано ниже:

val df = Seq(
  (2,6), (1,2), (1,3), (1,5), (2,3)
).toDF("A", "B")

df.orderBy($"A", $"B".desc).show
// +---+---+
// |  A|  B|
// +---+---+
// |  1|  5|
// |  1|  3|
// |  1|  2|
// |  2|  6|
// |  2|  3|
// +---+---+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...