私の質問は簡単ですが、私は適切な解決策を見つけることができません。私はひどいコードでそれをハックすることができます、私はエレガントなものを見つけることを望みます。ここでスパークデータフレーム:グループ後の使用方法+合計
はコードの私のラインです:
val summedDF = dataFrame.groupBy(colsNamesGroupBy.head, colsNamesGroupBy.tail : _*).sum(colsNamesSum:_*)
それは、列名の配列にGROUPBYを行い、その後、いくつかの列を合計します。
すべて正常に動作しますが、私は名前のついた列(sum(xxxx))を取得します。 私は外出先でこれらの名前を変更したいかもしれません。おそらくマップ操作で、 "xxxx"という名前だけを保持しています。
誰でも知っていますか?
EDIT:
私はそのような何かをしようとしているが、私は "この署名付きシンボルAGGを解決することはできません" を取得:
val summedDF = dataFrame.groupBy(colsNamesGroupBy.head, colsNamesGroupBy.tail : _*).agg(colsNamesSum.map(c => sum(c).as(c)))
あなたはこの回答を調べましたか?https://stackoverflow.com/questions/33882894/sparksql-apply-aggregate-functions-to-a-list-of-column –