Искра 1.4.1
Я сталкиваюсь с ситуацией, когда группировка с помощью фрейма данных, тогда подсчет и фильтрация в столбце "count" вызывает исключение ниже
import sqlContext.implicits._
import org.apache.spark.sql._
case class Paf(x:Int)
val myData = Seq(Paf(2), Paf(1), Paf(2))
val df = sc.parallelize(myData, 2).toDF()
Затем группировка и фильтрация:
df.groupBy("x").count()
.filter("count >= 2")
.show()
Выдает исключение:
java.lang.RuntimeException: [1.7] failure: ``('' expected but `>=' found count >= 2
Решение:
Переименование столбца заставляет проблему исчезнуть (поскольку, как я подозреваю, нет никакого конфликта с интерполированной функцией "count"
df.groupBy("x").count()
.withColumnRenamed("count", "n")
.filter("n >= 2")
.show()
Итак, это поведение, которое можно ожидать, ошибка или есть канонический способ обойти?
спасибо, alex