我有一个Spark Scala数据框,需要根据条件过滤元素并选择计数。
val filter = df.groupBy("user").count().alias("cnt")
val **count** = filter.filter(col("user") === ("subscriber").select("cnt")
我面临的错误是值选择不是org.apache.spark.sql.Column的成员 同样由于某些原因,计数是数据集[行] 有什么想法可以单行计数吗?
答案 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")
将起作用,因为您缺少)括号,后者正在关闭过滤器的括号。