美文网首页
中文文档 pyspark.sql.GroupedData

中文文档 pyspark.sql.GroupedData

作者: cassie_xs | 来源:发表于2020-03-28 22:08 被阅读0次

    由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

          本文链接:https://www.haomeiwen.com/subject/qfceuhtx.html