Как отфильтровать кадр данных, чтобы отображались только определенные значения? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть датафрейм df со столбцами «источник, цель, вес», и мне нужно использовать команду scala (без SQL), чтобы:

  1. Получить все веса выше 10 и
  2. удалить все повторяющиеся строки.

Для 1 я пробовал df.filter ("weight> = 10"), но это не работает

Для 2 я попробовал df.dropDuplicates (), но это тоже не работает

Я использую this в качестве справки для вышеуказанных команд.

Что я здесь не так делаю?

1 Ответ

3 голосов
/ 15 марта 2019

вы используете filter неправильно, посмотрите на фрагмент ниже, чтобы понять

import sparkSession.implicits._

val dataframe = Seq(("x", 20, 10), ("y", 30, 20), ("y", 30, 20), ("z", 10, 20)).toDF("source", "target", "weight")

val result1 = dataframe.filter($"weight" > 10)
val result2 = dataframe.filter($"weight" > 10).dropDuplicates()

dataframe.show
result1.show
result2.show

и вывод

+------+------+------+
|source|target|weight|
+------+------+------+
|     x|    20|    10|
|     y|    30|    20|
|     y|    30|    20|
|     z|    10|    20|
+------+------+------+

+------+------+------+
|source|target|weight|
+------+------+------+
|     y|    30|    20|
|     y|    30|    20|
|     z|    10|    20|
+------+------+------+

+------+------+------+
|source|target|weight|
+------+------+------+
|     y|    30|    20|
|     z|    10|    20|
+------+------+------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...