2017-10-18 124 views
0

我必须在pyspark数据框上执行2级分组。 我试探性的:将pyspark分组的数据对象转换为火花Dataframe

grouped_df=df.groupby(["A","B","C"]) 
grouped_df.groupby(["C"]).count() 

,但我得到了以下错误:

'GroupedData' object has no attribute 'groupby' 

我想我应该分组的对象首先转换成pySpark DF。但我不能那样做。

有什么建议吗?

+0

为什么需要分组的2级?你可以发布你的输入和输出.. – Suresh

回答

1

我有同样的问题。我解决这个问题的方法是先在第一个groupby之后做一个“count()”,因为它返回一个Spark DataFrame而不是GroupedData对象。然后你可以在返回的DataFrame上做另一个groupby。

所以尝试:

grouped_df=df.groupby(["A","B","C"]).count() 
grouped_df.groupby(["C"]).count() 
-1

您应该将聚合函数应用到您的第一个groupBy

grouped_df= df.groupby(["A","B","C"]).count() 
g_grouped_df = grouped_df.groupby(["C"]).count()