Spark 1.4.1dataframe: come groupby/contare poi filtrata su conteggio Scala
I incontrano una situazione in cui il raggruppamento per un dataframe, quindi contando e filtraggio nella colonna 'conteggio' genera l'eccezione sotto
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()
Poi raggruppamento e filtraggio:
df.groupBy("x").count()
.filter("count >= 2")
.show()
genera un'eccezione:
java.lang.RuntimeException: [1.7] failure: ``('' expected but `>=' found count >= 2
Soluzione:
Rinominare la colonna rende il problema Vanish (come sospetto non v'è alcun conflitto con la funzione di interpolato 'count''
df.groupBy("x").count()
.withColumnRenamed("count", "n")
.filter("n >= 2")
.show()
Quindi, è che un comportamento aspettarsi , un bug o c'è un modo canonico per andare in giro?
grazie, alex