2016-12-13 7 views
0

を持っていない私は、このようなDFを持ってpyspark 2.0 を使用しています: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") 

私はこのエラーを得た:

「DATAFRAME」オブジェクトが属性「ピボット」を持っていない

は、どのように私は、このような場合にはピボットを行うことができますまたは他の解決策はありますか? おかげ

答えて

0

あなたはとてもまずあなたがdateによってグループに必要な、その後、ピボットp_categoryにより、gruped datapivotを呼び出す必要があります:

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