Фильтр искровых данных и выберите - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть искровой scala фрейм данных, и мне нужно отфильтровать элементы по условию и выбрать количество.

  val filter = df.groupBy("user").count().alias("cnt")
  val **count** = filter.filter(col("user") === ("subscriber").select("cnt")

Ошибка, с которой я сталкиваюсь, заключается в том, что значение select не является членом org. apache .spark. sql .Column Также по некоторым причинам количество равно Набор данных [Строка] Есть мысли, чтобы подсчитать количество в одной строке?

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

DataSet[Row] - это DataFrame

RDD[Row] - это DataFrame, поэтому не нужно беспокоиться ... его фрейм данных

см. Это для лучшего понимания ... Разница между DataFrame, Dataset и RDD в Spark

Относительно select is not a member of org.apache.spark.sql.Column его чисто ошибка компиляции.

 val filter = df.groupBy("user").count().alias("cnt")
  val count = filter.filter (col("user") === ("subscriber"))
    .select("cnt")

будет работать, так как вам не хватает) фигурные скобки, закрывающая фигурную скобку для фильтра ,

1 голос
/ 24 апреля 2020

Вы пропустили ")" перед .select, пожалуйста, проверьте код ниже.

У класса столбца нет метода .select, вы должны вызвать select на Dataframe.

val filter = df.groupBy("user").count().alias("cnt")
  val **count** = filter.filter(col("user") === "subscriber").select("cnt")

...