2016-12-13 47 views
0

我使用pyspark 2.0 我有這樣一個DF:pyspark '數據幀' 對象有沒有屬性 '支點'

+----------+----------+-------- 
    |pid  |  date| p_category 
    +----------+----------+-------- 
    | 1ba |2016-09-30|flat 
    | 3ed |2016-09-30|ultra_thin 
    +----------+----------+---------- 

我做了

df.groupBy("p_category","date") \       
    .agg(countDistinct("pid").alias('cnt')) 

,我得到這樣的:

+----------+----------+------+ 
    |p_category|  date| cnt| 
    +----------+----------+------+ 
    | flat |2016-09-30|116251| 
    |curve  |2016-09-30|113017| 
    +----------+----------+------+ 

但我想我的數據透視表是這樣的:

+----------+----------+------+ 
    |date  |  flat| ultra-thin 
    +----------+----------+------+ 
    2016-09-30 | 116251|113017 
    ------------------------------ 
    df.groupBy("p_category","date") \       
    .agg(countDistinct("pid").alias('cnt')).pivot("p_category") 

我得到這個錯誤:

「數據幀」對象有沒有屬性「支點」

我怎麼能這樣做樞軸在這種情況下,還是有其他的解決辦法? 感謝

回答

0

請立即撥打gruped datapivot,所以首先你需要按date,然後通過轉動p_category

>>> df.groupBy('date').pivot('p_category').agg(countDistinct('pid').alias('cnt')).show() 
+----------+----+----------+              
|  date|flat|ultra_thin| 
+----------+----+----------+ 
|2016-09-30| 1|   1| 
+----------+----+----------+ 
相關問題