Spark Dataframe包含一个包含2列的表: 状态,类别。
Status has values----'y' and 'n'
Category has values -'a', 'b' and 'c'
如何查找状态百分比' y'在spark(Scala)中的每个类别? 我能够做到这一点。
df.groupBy("category").agg(count("*"))
df.filter(col("status")==="y").groupBy("category").count()
之后合并任何东西都会给我带来错误
答案 0 :(得分:0)
val dfN = df.filter(col("status").equalTo("y"))
val dfSum = dfN.groupBy("category").agg(count("status").as("Sum"))
val numSum = num.first()(0).toString.toInt
val dfResult = dfSum.select(col("category"), lit(col("Sum") * 100 / numSum).as("percentage"))
答案 1 :(得分:0)
GroupBy
和aggregation
应足以找到每个count
的{{1}}个Category
。 Status
函数可用于查找每个Window
的总sum
。最后,您可以通过Category
进行必要的filter
。
Status
我希望答案很有帮助