Scala Apache Spark窗口函数,按大小筛选
我试图使用窗口函数计算窗口内的平均值,但在计算前不包括0Scala Apache Spark窗口函数,按大小筛选,scala,apache-spark,apache-spark-sql,apache-spark-dataset,Scala,Apache Spark,Apache Spark Sql,Apache Spark Dataset,我试图使用窗口函数计算窗口内的平均值,但在计算前不包括0 val byClass = Window.partitionBy('class) val avgAge = avg('age).over(byClass) 我尝试像这样过滤大小,但没有运气 val avgAge = avg('age).ge(lit(0)).over(byClusterHash) 最后, val results = reports.select('*, avgAge as 'avg).show(2000) 你
val byClass = Window.partitionBy('class)
val avgAge = avg('age).over(byClass)
我尝试像这样过滤大小,但没有运气
val avgAge = avg('age).ge(lit(0)).over(byClusterHash)
最后,
val results = reports.select('*, avgAge as 'avg).show(2000)
你知道如何解决这个问题吗?你能展示示例数据和预期输出吗?@mtoto将计算出的平均值添加到结果中,因此,不是将年龄平均值计算为(5+4+0)/
3
,而是将其计算为(5+4)/2
,这很好,但你的代码仍然不可复制。@mtoto:没有什么可复制的,这只是spark中的一个基本窗口函数,只需要知道如何在组中应用筛选器以排除某些行。如果没有要复制的内容,也没有什么要回答的。您能显示示例数据和预期输出吗?@mtoto将计算出的平均值添加到结果中,因此,不要将年龄的平均值计算为(5+4+0)/3
,计算为(5+4)/2
,这很好,但您的代码仍然不可复制。@mtoto:没有什么可复制的,它只是spark中的一个基本窗口函数,只需要知道如何在组内应用筛选器以排除某些行。如果没有可复制的,也没有什么可回答的。