pyspark-select和agg之间的差异

pyspark-select和agg之间的差异,select,pyspark,group-by,aggregate,Select,Pyspark,Group By,Aggregate,以下两者之间有什么区别- df.selectminsalary.show 及 df.agg{'salary':'min'}.show 还有,这两者有什么区别- df.groupBydepartment.agg{'salary':'min'}.show 及 df.groupByCompany.min'salary'.show在Spark中,有许多不同的方法来编写相同的内容。这主要取决于您喜欢SQL写还是python写 df.selectminsalary相当于SQL: 从df中选择minsalar

以下两者之间有什么区别-

df.selectminsalary.show

df.agg{'salary':'min'}.show

还有,这两者有什么区别-

df.groupBydepartment.agg{'salary':'min'}.show


df.groupByCompany.min'salary'.show

在Spark中,有许多不同的方法来编写相同的内容。这主要取决于您喜欢SQL写还是python写

df.selectminsalary相当于SQL:

从df中选择minsalary 此查询计算不带任何group by子句的“薪资”列的最小值。 相当于

从pyspark.sql导入函数为F df.groupBy.aggF.minsalary 或 agg{'salary':'min'} 如您所见,groupBy是空的,因此您不按任何内容分组。Python还可以解释dict{'salary':'min'},它相当于函数F.minsalary

方法agg取决于对象。应用于a,相当于df.groupBy.agg。agg也是在执行df.groupBy时创建的对象的一种方法。我添加了Officel文档的链接,在这里你可以看到这两种方法之间的区别

写入df.groupBydepartment.agg{'salary':'min}时,可以在方法agg中指定几个不同的聚合。如果仅使用min,则限制为一列。例如,您可以执行以下操作:

从pyspark.sql导入函数为F df.groupBydepartment.aggF.minsalary,F.maxage 或 agg{'salary':'min','age':'max'} 但你不能这样做 df.groupBydepartment.minsalary.maxage >>AttributeError:“DataFrame”对象没有属性“max”