触发数据框过滤器并选择

时间:2020-04-24 16:02:36

标签: scala apache-spark apache-spark-sql

我有一个Spark Scala数据框,需要根据条件过滤元素并选择计数。

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

我面临的错误是值选择不是org.apache.spark.sql.Column的成员 同样由于某些原因,计数是数据集[行] 有什么想法可以单行计数吗?

2 个答案:

答案 0 :(得分:1)

.select之前您缺少“)”,请检查以下代码。

列类没有.select方法,您必须在Dataframe上调用select。

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

答案 1 :(得分:1)

DataSet[Row]DataFrame

RDD[Row]DataFrame,所以不用担心。.它的数据帧

请参阅此内容以更好地理解... Difference between DataFrame, Dataset, and RDD in 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")

将起作用,因为您缺少)括号,后者正在关闭过滤器的括号。