Spark 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()
Run Code Online (Sandbox Code Playgroud)
然后分组和过滤:
df.groupBy("x").count()
.filter("count >= 2")
.show()
Run Code Online (Sandbox Code Playgroud)
引发异常:
java.lang.RuntimeException: [1.7] failure: ``('' expected but `>=' found count >= 2
Run Code Online (Sandbox Code Playgroud)
解:
重命名列会使问题消失(因为我怀疑与插值'count'函数没有冲突'
df.groupBy("x").count()
.withColumnRenamed("count", "n")
.filter("n >= 2")
.show()
Run Code Online (Sandbox Code Playgroud)
那么,这是一种期望的行为,一个错误还是一种规范的方式?
谢谢,亚历克斯