中文文档 pyspark.sql.GroupedData

由DataFrame.groupBy()创建的DataFrame上的一组聚合方法。

6.1 agg(*exprs)

计算聚合并将结果作为DataFrame返回。

可用的集合函数是avg,max,min,sum,count。

如果exprs是从字符串到字符串的单个字典映射,那么键是要执行聚合的列,值是聚合函数。

另外,exprs也可以是聚合列表达式的列表。

参数:●exprs – 从列名(字符串)到聚集函数(字符串)的字典映射或列的列表。

tmp = df.groupBy(df.name)

tmp.agg({"*":"count"}).collect()

 from pyspark.sql import functions as F

 tmp.agg(F.min(df.age)).collect()

6.2 avg(*args)

计算每个组的每个数字列的平均值。

mean()是avg()的别名。

参数:●cols – 列名称列表(字符串),非数字列被忽略。

df.groupBy().avg('age').collect()

6.3 count()

统计每个组的记录数。

 df.groupBy(df.age).count().collect()

6.4 max(*args)

计算每个组的每个数字列的最大值。

df.groupBy().max('age').collect()

6.5 mean(*args)

计算每个组的每个数字列的平均值。

mean()是avg()的别名。

参数:●cols – 列名称列表(字符串),非数字列被忽略。

df.groupBy().mean('age').collect()

6.6 min(*args)

计算每个组的每个数字列的最小值。

参数:●cols– 列名称列表(字符串),非数字列被忽略。

df.groupBy().min('age').collect()

6.7 pivot(pivot_col, values=None)

旋转当前[[DataFrame]]的列并执行指定的聚合。 有两个版本的透视函数:一个需要调用者指定不同值的列表以进行透视,另一个不需要。 后者更简洁但效率更低,因为Spark需要首先在内部计算不同值的列表。

参数:●pivot_col – 要旋转的列的名称。

values – 将被转换为输出DataFrame中的列的值的列表。

// 计算每个课程每年的收入总和作为一个单独的列

In [381]: l4=[(2012,'dotNET',10000),(2012,'dotNET',5000),(2012,'Java',20000),(2013,'dotNET',48000),(

    ...: 2013,'Java',30000),(2012,'c',9999)]

In [382]: df4 = sqlContext.createDataFrame(l4,['year','course','earnings'])

In [383]: df4.groupBy("year").pivot("course", ["dotNET", "Java"]).sum("earnings").collect()

Out[383]:

[Row(year=2012, dotNET=15000, Java=20000),

Row(year=2013, dotNET=48000, Java=30000)]

# 无值型

In [384]: df4.groupBy("year").pivot("course").sum("earnings").collect()

Out[384]:

[Row(year=2012, Java=20000, c=9999, dotNET=15000),

Row(year=2013, Java=30000, c=None, dotNET=48000)]

6.8 sum(*args) 

计算每个组的每个数字列的总和。

参数:●  cols – 列名称列表(字符串),非数字列被忽略。

df.groupBy().sum('age').collect()

你可能感兴趣的:(中文文档 pyspark.sql.GroupedData)