2016-07-26 37 views
1

我運行在具有幾百萬的記錄的數據集groupBy()並要保存生成的輸出(pyspark GroupedData對象),這樣我可以在以後反序列化,並從該點恢復(最重要的是爲運行彙總需要)。如何序列化pyspark GroupedData對象?

df.groupBy("geo_city") 
<pyspark.sql.group.GroupedData at 0x10503c5d0> 

我想避免GroupedData對象轉換爲DataFrames或RDDS以便將其保存到文本文件或鑲木/阿夫羅格式(如轉換操作是昂貴的)。有沒有其他有效的方法將GroupedData對象存儲爲某種二進制格式以便更快地讀取/寫入?可能在Spark中有一些相當於泡菜?

回答

2

沒有,因爲GroupedData不是真的。它根本不執行任何數據操作。它僅描述當您對後續agg的結果執行操作時應如何進行實際聚合。

你也許序列墊層JVM對象,並在以後恢復它,但它是在浪費時間。由於groupBy只描述了必須做的事情,重新創建對象的成本應該可以忽略不計。