2017-10-18 125 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()