Используя DataFrame и метод where (), который выбирает строки, где A больше 5 или B больше 5 - PullRequest
0 голосов
/ 02 мая 2018

Учитывая Spark DataFrame в переменной t, представляющей таблицу с двумя целочисленными столбцами (A, B), запишите выражение, используя столбцы DataFrame, которые должны быть переданы в качестве параметра метода where() DataFrame, который выбирает строки, где A больше 5 или B больше 5. Использование переменной DataFrame и не использование функции col().

1 Ответ

0 голосов
/ 05 мая 2018

Существует две функции col: одна из класса класса данных и одна из org.apache.spark.sql.functions . В этом простом случае оба будут работать:

t.where(t.col("A").gt(5).or(t.col("B").gt(5))).show() //from dataset
import org.apache.spark.sql.functions._
t.where(col("A").gt(5).or(col("B").gt(5))).show() //from functions

В зависимости от того, кого из двух вы хотите избежать, вы можете выбрать другой.

Если вы используете Scala, также $ работает:

t.where($"A">5 or $"B">5).show

Вы также можете полностью переключиться на синтаксис sql:

t.where("A > 5 or B > 5").show

Если разрешено filter, версия lamdba также будет работать:

t.filter(r => r.getInt(0) > 5 || r.getInt(1) > 5).show
...