Apache spark 一些给定的值。例如,groupBy K,获得聚合“v”,获得计数“w”。@Ahmet您可以传递任何您想要的聚合列表。它们不必在单个列上,例如:exprs=[mean(“v”)、count(“w”)]。另请参见我需要一个额外的导入才能使上面的Scala代码正
Apache spark 一些给定的值。例如,groupBy K,获得聚合“v”,获得计数“w”。@Ahmet您可以传递任何您想要的聚合列表。它们不必在单个列上,例如:exprs=[mean(“v”)、count(“w”)]。另请参见我需要一个额外的导入才能使上面的Scala代码正,apache-spark,dataframe,apache-spark-sql,Apache Spark,Dataframe,Apache Spark Sql,一些给定的值。例如,groupBy K,获得聚合“v”,获得计数“w”。@Ahmet您可以传递任何您想要的聚合列表。它们不必在单个列上,例如:exprs=[mean(“v”)、count(“w”)]。另请参见我需要一个额外的导入才能使上面的Scala代码正常工作:导入spark.implicits.\u为了它的价值,我在PythonBut zero323的列表理解量表中非常成功地使用了这项技术,而您手工制作的列表却没有。@OliverW。重点是,您不必计算所有函数和列的组合,但您只能指定所需的对
一些给定的值。例如,groupBy K,获得聚合“v”,获得计数“w”。@Ahmet您可以传递任何您想要的聚合列表。它们不必在单个列上,例如:
exprs=[mean(“v”)、count(“w”)]
。另请参见我需要一个额外的导入才能使上面的Scala代码正常工作:导入spark.implicits.\u
为了它的价值,我在PythonBut zero323的列表理解量表中非常成功地使用了这项技术,而您手工制作的列表却没有。@OliverW。重点是,您不必计算所有函数和列的组合,但您只能指定所需的对。出于其价值,我在PythonBut zero323的列表理解量表中非常成功地使用了此技术,而您手工制作的列表却没有。@OliverW。重点是,您不必计算所有函数和列的组合,但可以只指定所需的对。
df.groupBy(groupBy.head, groupBy.tail: _*).agg(exprs.head, exprs.tail: _*).show
from pyspark.sql.functions import min, max, col
# init your spark dataframe
expr = [min(col("valueName")),max(col("valueName"))]
df.groupBy("keyName").agg(*expr)
case class soExample(firstName: String, lastName: String, Amount: Int)
val df = Seq(soExample("me", "zack", 100)).toDF
import org.apache.spark.sql.functions._
val groupped = df.groupBy("firstName", "lastName").agg(
sum("Amount"),
mean("Amount"),
stddev("Amount"),
count(lit(1)).alias("numOfRecords")
).toDF()
display(groupped)
val groupByColName = "Store"
val colName = "Weekly_Sales"
df.groupBy(groupByColName)
.agg(min(colName),
max(colName),
round(avg(colName), 2))
.show()
from pyspark.sql.functions import count,col
def count_zero_percentage(c):
pred = col(c)==0
return sum(pred.cast("integer")).alias(c)
df.agg(*[count_zero_percentage(c)/count('*').alias(c) for c in df.columns]).show()