9

次のようなデータフレームがあります

In [94]: prova_df.show()


order_item_order_id order_item_subtotal
1                   299.98             
2                   199.99             
2                   250.0              
2                   129.99             
4                   49.98              
4                   299.95             
4                   150.0              
4                   199.92             
5                   299.98             
5                   299.95             
5                   99.96              
5                   299.98             

私がやりたいことは、最初の列の異なる値ごとに、2 番目の列の対応する値の合計を計算することです。私は次のコードでこれをやってみました:

from pyspark.sql import functions as func
prova_df.groupBy("order_item_order_id").agg(func.sum("order_item_subtotal")).show()

出力を与える

SUM('order_item_subtotal)
129.99000549316406       
579.9500122070312        
199.9499969482422        
634.819995880127         
434.91000747680664 

それが正しいことをしているかどうかはわかりません。最初の列の情報も表示されないのはなぜですか? 回答ありがとうございます

4

3 に答える 3

14

最初の列の情報も表示されないのはなぜですか?

古い Spark 1.3.x を使用している可能性があります。その場合はagg、次のように列のグループ化を繰り返す必要があります。

(df
    .groupBy("order_item_order_id")
    .agg(func.col("order_item_order_id"), func.sum("order_item_subtotal"))
    .show())
于 2015-11-28T05:35:14.137 に答える